Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Miten tehdään laskuja muuttujilla?

Sivun loppuun

Silakka [23.01.2004 23:53:25]

#

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...

julius_88 [24.01.2004 00:38:35]

#

'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:)

Sami [24.01.2004 00:50:34]

#

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.

remontti-reiska [24.01.2004 09:57:26]

#

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.

setä [24.01.2004 10:21:49]

#

Tossa juliuksen koodissa pitäisi olla:
Form1.rahamäärä = Form1.rahamäärä - kiinteistö1hinta
Jos pääformi on Form1

julius_88 [24.01.2004 11:28:21]

#

aa joo..:)

Silakka [24.01.2004 14:20:23]

#

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

setä [24.01.2004 15:18:58]

#

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.

Silakka [24.01.2004 15:42:22]

#

Mikä on koodimoduuli?

Silakka [24.01.2004 15:43:36]

#

Ahaa, nyt tiedänkin. Ei tarvitse vastata!

remontti-reiska [24.01.2004 15:44:52]

#

Moduuli, johon pistetään kaikenlaista koodia (yksinkertaistettuna ;D).


Sivun alkuun

Vastaus

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

Tietoa sivustosta