Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Mikäs tässä mättää?

aloitteleva [09.02.2006 15:42:21]

#

Private Sub Command1_Click()
peli.Raha = peli.Raha - Ostoss * 50000
peli.Tehtaat.Text = peli.Tehtaat.Text + Tehtaatttt.Ostoss.Text
Tehtaatttt.Visible = False
End Sub

Ton pitäis niinku laittaa peli formin, tehtaat.textiin aina vaikka 3,(se määrä kirjotetaa textboxiin), sitten ku oon ns "ostanu ne tehtaat" niin peli.tehtaa.textiin tulee 03, sitten "ostan" uudestaan 3 tehdasta ja textboxissa tulee 033, voisikos joku vähä jeesaa, sori paska selostus.

Antti Laaksonen [09.02.2006 16:09:52]

#

Tosiaan selostus oli hieman kehno, mutta ongelmana taitaa olla se, että haluaisit suurentaa tekstikentän lukua, mutta numerot vain kasaantuvat peräkkäin. Tämä johtuu siitä, että tekstikentän tekstit ovat merkkijonoja ja silloin plus-merkki vain yhdistää kaksi merkkijonoa. Korjaus on muuttaa yhteenlaskettavat tiedot luvuiksi:

peli.Tehtaat.Text = Val(peli.Tehtaat.Text) + Val(Tehtaatttt.Ostoss.Text)

Usein VB:n automaattiset tyyppimuunnokset toimivat oikein, mutta toisinaan tulee väärinkäsityksiä. Siksi kannattaa varmuuden vuoksi muuttaa merkkijonot luvuiksi (juuri Val-funktiolla), jos yhteys on vähänkin epäselvä.

aloitteleva [09.02.2006 16:20:43]

#

kiitos antti, pääsinpäs jatkamaan projektiani.

Merri [09.02.2006 19:49:15]

#

Jos nuo luvut ovat aina kokonaislukuja, niin paremman lopputuloksen saattaa saada käyttämällä CLng() tuon Val() sijaan. Val muuttaa annetun tiedon liukuluvuiksi, tarkemmin Double-muotoon. Sitten myös CCur voi toimia paremmin jos desimaalilukuja ei tarvitse kuin maksimissaan neljä kappaletta.

CCur ja CLng ovat sitten vähän nirsompia sen suhteen mitä ne voivat ottaa vastaan, Val toimii melkein minkä tahansa muun muuttujan kanssa, CCur ja CLng eivät toimi ihan kaiken syötteen kanssa (mm. tyhjä string aiheuttaa muistaakseni virheen, Val taas muuttaa sen nollaksi).

Vastaus

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

Tietoa sivustosta