Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6 ja raha pelissä

Jyltsa [06.01.2006 14:08:23]

#

Taas tälläänen juttu...

form1:sen "Uusi peli" painikkees:

Dim raha As Integer
    raha = 10000
    Form1.rahat.Caption = raha

form4:sen "Osta" painike

Dim raha, hinta as Integer
   raha=form1.rahat.caption
   hinta=form4.maksaa.caption

If raha > hinta then

   raha=raha-hinta

End If

Mikä mättää. Ei se raha vähene ollenkaa tuolta form1.rahat laabelista

Merri [06.01.2006 14:14:41]

#

Et missään vaiheessa muuta kyseisen labelin arvoa :)


Huomautus muuten tuosta Dim-rivistä: raha on määritelty tuolla tavalla vain Variantiksi, ei Integeriksi. Kirjoita siis:

Dim raha As Integer, hinta As Integer

Antti Laaksonen [06.01.2006 14:15:40]

#

Muutat pelkkää muuttujan raha arvoa. Sinun pitää vielä päivittää näkyvää tekstiä oston jälkeen:

Form1.rahat.Caption = raha

Ehkä parempi tapa olisi kyllä tehdä moduuli ja määritellä siellä yleinen muuttuja raha:

Public raha As Integer

Sitten tässä muuttujassa voisi pitää koko ajan rahamäärää.

Oletko muuten varma, että Integer-tyyppi riittää tarkoitukseen?

Jyltsa [06.01.2006 14:57:47]

#

Ei mee mun päähän...

Pitääskö sinne moduuliin laittaa näin:

Public raha as integer
raha=Form1.rahat.Caption

Vai pitääkö tuo raha=Form1.rahat.Caption olla siinä "Uusi peli" painikkees?

Ei pelittäny:

Sub RahaModuuli ()
 Public raha As Integer, hinta as integer
 raha=form1.rahat.caption
 hinta=form4.maksaa.caption
End sub

Private Sub uusipeli_Click()
 RahaModuuli
 raha=10000
 form1.rahat.caption=raha
end sub

Private Sub Osto_Click()
 RahaModuuli

 If raha > OsanHinta Then

  raha = Form1.rahat.Caption
  raha = raha - OsanHinta
  Form1.rahat.Caption = raha

End If

Antti Laaksonen [06.01.2006 15:06:55]

#

Moduuli on erillinen tiedosto, joka tulee valikosta Project -> Add Module. Siellä voi määritellä muuttujia, jotka ovat voimassa koko ohjelman alueella. Siis samaan muuttujaan voi viitata kaikkien lomakkeiden kaikissa tapahtumissa.

Moduuliin riittää vain:

Public raha As Integer

Uusi peli alkaa vaikka näin:

raha = 10000
NaytaRahat

Ostaminen käy tähän tapaan:

hinta = 10
If raha > hinta Then
    raha = raha - hinta
    NaytaRahat
End If

Tällainen aliohjelma on aika näppärä:

Sub NaytaRahat()
    Form1.rahat.Caption = raha
End Sub

VB-oppaassa on muuten selitetty aika hyvin näitäkin juttuja.

Blaze [06.01.2006 15:16:24]

#

Ota tuo raha- ja hinta-muuttujien määrittely ulos tuosta aliohjelmasta. Aliohjelman sisällä määritellyt muuttujat kun eivät näy muille aliohjelmille.

Edit: Höh, ei pitäis käyä muualla selittämässä muuta. Muut ehtii väliin.

Jyltsa [06.01.2006 16:12:24]

#

Kiitos...

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta