Klein vraagje over Visual Basic en Variable.

Status
Niet open voor verdere reacties.

wawahoe

Gebruiker
Lid geworden
30 apr 2010
Berichten
90
Hoe kan ik doen dat als de Variable Geld meer dan bijvoorbeeld 300 is, er 300 van de variable (je geld) eraf gaat, maar dat als je geen 300 hebt, er een MsgBox komt, zeggend dat je niet genoeg geld hebt?

Trouwens, ik gebruik Visual Basic 6!
 
Laatst bewerkt:
Het zou ongeveer zoiets moeten worden. Doe dit uit mijn hoofd, heb al lang geen VB meer gebruikt.

If Geld => 300 then
Geld = Geld - 300
Else
msgBox "Niet genoeg geld"
End if
 
Maar nou is er een probleem. In textbox 2 moet de aantal van geld staan. Daar staat 500, dus heb ik alvast meer dan 300. Ik druk op het koop knopje, maar hij zegt dat ik niet genoeg geld heb, terwijl ik 500 heb?
 
Mss nog toevoegen : Dim Geld as Integer of post je code anders even.
 
En wat staat er in de eigenschappen van textbox2? Of mss iets van =val(textbox2)?
 
De eigenschappen zijn volgensmij goed... Of weet je wat, kan jij misschien (en please zodat ik EINDELIJK eens verder kan met mijn spel) en kleine (virtuele) shop system maken? Met geld en voorbeeld dingen die je kan kopen etc.
 
Laatst bewerkt:
Betekent "Converteer de tekst naar een waarde". Een getal kan ook als tekst worden gezien en dan kan er niet mee gerekend worden.
Dus als er b.v. 100 staat in een tekstbox, kan dit als tekst worden gezien. Je kunt er niet mee rekenen. Je zult dat dan eerst moeten omzetten naar een getal, x = val(tekstbox). Andersom kan ook, textbox.text = str(x). Zet getal x om in tekst.
 
Bedankt, maar ehh, daar begreep ik dus echt helemaal niets van. Kun je alsjeebliieeeftt een voorbeeld voor me maken??
 
Laatst bewerkt:
Het voorbeeld staat er al. Ik zou niet weten hoe het nog simpeler kan. En anders maar eens VB beter bestuderen.
 
Zover ik weet moest de code die ik gebruik werken. Trouwens, met voorbeeld bedoelde ik of je een voorbeeld PROJECT voor me wilt maken. Of als je VB.Net gebruikt eentje van VB.Net...
 
Het is toch echt niet zo moeilijk als het lijkt.

Je bent het vast wel met me eens dat je letters, en let op: ik zet LETTERS, niet bij elkaar kan optellen.

Code:
A + B = ?

Dat gaat niet.

Getallen kun je wel optellen:

Code:
1 + 3 = 4

Toch is het mogelijk om in VB de code:
Code:
A + B

...te gebruiken. Maar alleen als je Visual Basic laat weten dat de waarden van A en B een getal is. Wat je dan moet doen is een integer variable maken:

Code:
Dim A As Integer = 1
Dim B As Integer = 3

Wat nu hebt zijn twee variablen die gedeclareerd zijn als een Integer. Eens interger is simpelweg een benaming voor een heel getal. De variable A heeft als waarde het getal 1, variable heeft als waarde het getal 3, dus kun je ermee rekenen:

Code:
A + B = 4
1 + 3 = 4

Beide zijn hetzelfde. Maar wat als je een string variable hebt. Een string is een benaming voor tekst, gewoond doodgewone text. Dat kunnen letters zijn, hele zinnen en zelfde teksten met getallen erin:

Code:
Dim Str1 As String = "Gewoon wat text, jonge!"
Dim Str2 As String = "H3t 1s 4llem447 w4t"

In dit geval kun je hier niet mee rekenen, want rekenen doe je met getallen, en deze variablen zijn geen getalen (integers), maar tekenreeksen (string) of tewel gewoon tekt. Zelfs als je dit zou doen:

Code:
Dim Getal1 As String = 2
Dim Getal2 As String = 4

... kun je er niet mee rekenen, omdat de variable Getal1 en Getal2 geen integers zijn, maar simpel tekst, ookal hebben ze als waarde wel een getal toegewezen gekregen.

Hopelijk snap je dit, als je dus met getallen wilt rekenen, aftrrekken, optellen, delen, vermenigvuldigen en dat soort dingen, kan dat alleen als integers, en niet met strings.
 
Laatst bewerkt:
Volgensmij ligt het puur aan mij. Bedankt voor die kleine tutorial, maar ermm, heb ik iets fouts gedaan in mijn code (die ik niet heb opgegeven, lol) dat je dit voor mij het geschreven. Ik bedoel, bedankt, maar het lost mijn probleem nog steeds niet op...
 
Laatst bewerkt:
Dan doe je toch echt iets fout, en zolang je je complete code niet post, kunnen wij je niet helpen met het oplossen van het probleem.
 
Oke, ik post 'm hier:

Code:
Private Sub Command4_Click()
Static Geld As Integer
Form1.Text2.Text = Geld
Geld = Geld + 500
If Text2.Text = 500 Then
Command4.Visible = False
End If
End Sub

Dat is voor het knopje om geld te krijgen en hier op iets te kopen:
Code:
Private Sub Command3_Click()
Static Geld As Integer
If Geld >= 300 Then
Geld = Geld - 300
Else
MsgBox "Niet genoeg geld"
End If
End Sub

Waar ligt mijn probleem nou? Ik hoop dat je het voor mij kan fixen...
 
Laatst bewerkt:
Ten eerste, waarom gebruik je Static? Je moet Dim gebruiken.
Ten tweede, je hebt de variable geld twee keer gedeclareerd, één keer is genoeg. Haal ze weg uit beide knop subs, en zet dan een nieuwe declaratie bovenaan je form, maar onder de woorde Public Class Form 1.
 
Oke, nu gaat die text plek waar de geld hoort te staan over naar 500. Maar nu is er een andere probleem met deze:

Code:
Private Sub Command3_Click()
If Geld >= 300 Then
Geld = Geld - 300
Else
MsgBox "Niet genoeg geld"
End If
End Sub

In mijn textbox waar geld hoort te staan staat 500, ik klik op de knop, maar hij zegt "Niet genoeg geld".
 
Laatst bewerkt:
Ik zou je toch willen adviseren om over te stappen naar Visual Basic .NET. VB 6 is hopeloos verouderd. Met VB.NET is veel meer mogelijk, en het ziet er nog gelikter uit ook.

Enigste nadeel is dat je afhankelijk bent van het .NET Framework. Zonder dit geinstalleerd te hebben, draaien je zelfgemaakte programma's niet. Met VB6 heb je dit niet.

Ondanks dat, is het voor ons makkelijker om je te helpen, aangezien de meeste van ons, tenminste, dat denk ik, Visual Basic .NET gebruiken.

Zie screenshot:

http://www.themightyatom.nl/screenshots/saldo.jpg
 
Laatst bewerkt:
OMFG! Ik stap over naar VB.NET. Maar geef me pls die code voor dat geld dinges!!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan