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
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
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?
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
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.
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.
Kiitos...
Aihe on jo aika vanha, joten et voi enää vastata siihen.