Tämä koskee jälleen minun tulevaa lihakauppamanageripeliä. Eli, pääformissa on ruutu jossa on nykyinen rahamäärä. Formin alussa määritellään "public rahamäärä as integer" ja myös että "lblraha = rahamäärä" ja "rahamäärä = 10000". Kun painetaan nappulaa "osta kiinteistö" niin tulee formi, jossa valitaan kiinteistö ja painetaan OK. Jos kiinteistön hinta on esim. 5000 euroa niin se pitäisi miinustaa rahamäärästä. Enkä tiedä miten tässä kiinteistöformissa se pitäisi koodata. Olen kokeillut esim. "rahamäärä - 5000". En yhtään tiedä miten se pitää kirjoittaa. Joten etsin apuva täältä. Jos tuo oli epäselvä selitys, niin kysykää selvennystä ja yritän parhaani...
'ajatellaan, että sinulla on combobox josta valitaan kiinteistö
'määrittele myös se kiinteistö, ehkä jotenkin näin:
public kiinteisto1hinta as integer
kiinteisto1hinta = 5000
'sitte sinne formille
Private Sub Form_Load()
combo1.additem "Kiinteistö 1"
End Sub
private sub osta_click()
If combo1.value = "Kiinteistö 1" then
rahamäärä = rahamäärä - kiinteisto1hinta
end sub
'voi olla, että on väärin, mutta yritin keksiä jotain:)
lasku "rahamäärä - 5000" on kyllä ihan oikein, mutta kannattaisi kokeilla sijoittaa saatu tulos johonkin muuttujaan (tässä tapauksessa muuttujaan 'rahamäärä'), eli siis tähän tapaan:
rahamäärä = 10000 'asetetaan rahamäärä
rahamäärä = rahamäärä - 5000 'vähennetään nykyisestä rahamäärästä 5000 ja sijoitetaan saatu tulos 'rahamäärä'-muuttujaan.
Dim jää As Integer Dim rahat As Integer Dim karkit As Integer rahat = 20 karkit = 10 Private Sub Laske_Click() jää = rahat - karkit End Sub
Tuossa siis esimerkki.
Tossa juliuksen koodissa pitäisi olla:
Form1.rahamäärä = Form1.rahamäärä - kiinteistö1hinta
Jos pääformi on Form1
aa joo..:)
Ei toimi. Laitoin tällaisen koodin siihen (tämä on siis form2:sessa):
Private Sub Command2_Click() If Option1.Value = True Then Dim pkaupanhinta As Integer pkaupanhinta = 5000 rahatilanne = rahatilanne - pkaupanhinta MsgBox ("Ostit juuri pienen kiinteistön!") Form2.lblkauppa.Caption = "Omistat pienen kiinteistön" Form2.lblraha.Caption = rahatilanne Else End If End Sub
Kun teen näin, niin form1:sen rahatilanne labeliin ilmestyy summa -5000 vaikka siihen pitäisi tulla 5000, koska muuttuja "rahatilanne" määritellään form1:sen alussa näin:
Public rahatilanne As Integer Private Sub Form_Load() rahatilanne = 10000 End Sub
Lisää koodimduuli (*.bas) ja määrittele siellä kaikki yhteiset (globaalit) muuttujat näin
Global rahamäärä As Long Global rahatilanne As Long
Nyt voit viitata muuttujiin miltä lomakkeelta hyvänsä ilman viittausta lomakkeeseen.
Mikä on koodimoduuli?
Ahaa, nyt tiedänkin. Ei tarvitse vastata!
Moduuli, johon pistetään kaikenlaista koodia (yksinkertaistettuna ;D).
Aihe on jo aika vanha, joten et voi enää vastata siihen.