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.
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ä.
kiitos antti, pääsinpäs jatkamaan projektiani.
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).
Aihe on jo aika vanha, joten et voi enää vastata siihen.