Kijk eens bij mijn tutorials, daar staat er een over het begin met Forms. Bij een van de uitgebreidere voorbeelden staat een mini - rekenmachine. Misschien dat je daar iets mee bent. KLIK voor de tutorial!
je maakt een
public getal1 as integer
public getal2 as integer
public operator as char
en dan bij op =-knop
dim uitkomst as integer
select operator
case +
uitkomst = getal1 + getal2
en zo verder
en dan kan je nog gaan controlere of getal1 al ingevuld is en dan getal1 gelijkstelle aan uitkomst zoda ge een 3de of zelfs 4de getal er kan bij bewerken
voor het gebruik van de meeste vb.net mogelijkhede: http://www.drea..._sheet.pdf
altijd makkelijk om bij te hebben...
jadie tutorial had ik gedaan, en dat ging goed, maar er zijn een paar verschillen:
- nu gebruik ik alleen maar buttons en egen invoer textboxen
- nu ben ik ook niet zeker hoeveel getallen er gaan zijn aangezien de gebruiker nu de controle heeft hoeveel invoer hij geeft
nu moet ik de invoer krijgen van buttons en niet van textboxen (werkt dat het zelfde of niet ?)
en in de tutorial is het een rekenmachine met 2 text boxen, dus maximaal 2 getallen. maar nhu met die buttons enz, kan de gebruiker meer dan 2 getallen geven
In visual studio moet je gewoon dubbelklikken op je knop en dan wordt er een even routine gemaakt. Dus als je gaat klikken op die knop dan wordt die routine (code) uitgevoerd.
Dus als je dubbelklikt op de knop 1 en je zet in je code dat de uitkomst verhoogt moet worden met 1, dan gaat hij dat uitvoeren als je op 1 klikt.
Mocht je interesse hebben, mijn eerste VB programma was ook een grafische rekenmachine en ik heb de source en executable enzo ooit online gezet, weet niet meer waar voor. Maar hier staan ze nog:
Misschien heb je er wat aan, maar let op dit is geen goede voorbeeld code (neem ik aan), want het was mijn eerst programma, zonder tutorial ofzo, en ik ben niet echt een programmeur...
@stijn1989: ja maar ik heb niet alleen optellen in mijn script ook *,/,- dus ik weet niet goed hoe ik de afhandeling moet gaan doen + het kunnen ook getallen zijn zoals 1482, en dan zou het niet correct zijn om bij de uit komst 1, 4, 8 en 2 op te tellen
@soebam: zeer interessant ik ga het ook direct bekijken ik hoop dat ik er iets va kan opsteken, maar alvast bedankt
ik heb de zip uitgepakt maar er zitten allemaal onbekende bestanden in, ondanks dat ik visual basic 2008 express heb geinstaleert
EDIT: vraag is opgelost
EDIT2: ik heb wel nog een nieuw vraagje, hoe maak ik een waarde leeg, want als ik reken en ik heb een uitkomst met ik de 2 waardes leeg maken zodat ik met andere getallen kan gaan rekenen, hoe doe ik dat ?
Abbas - 03/01/2008 11:20 (laatste wijziging 03/01/2008 11:34)
Crew .NET
Vrij logisch, volg even mee. We gaan je code even af:
1. Je drukt eender welk getal in en dit komt in het tekstvak
2. Je drukt op "+"
3. Bij de variabele "totaal" wordt het getal vanuit het tekstvak bijgeteld
4. Je drukt een nieuw getal in
5. Je drukt op "="
6. ??? Waar tel je dat laatste getal er nog bij ???
Doe ook nog een optelling van wat er in het tekstvak staat als je op "=" klikt.
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
totaal = totaal + Val(TextBox1.Text)
TextBox1.Clear()
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
'Hier nog een keer optellen
totaal = totaal + Val(TextBox1.Text)
TextBox1.Text = totaal.ToString()
End Sub
PrivateSub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Button3.Click
totaal = totaal +Val(TextBox1.Text)
TextBox1.Clear()
EndSub
PrivateSub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Button4.Click
'Hier nog een keer optellen
totaal = totaal +Val(TextBox1.Text)
TextBox1.Text= totaal.ToString()
EndSub
Hopelijk is het duidelijk!
Antwoord op je EDIT2:
Ik heb ooit eens het Windows-rekenmachine nagemaakt. Ik vond dat ook een vervelend stuk en heb het eenvoudig opgelost. Misschien niet de mooiste manier maar het werkt. Je plaatst "onder" je tekstvak een label en als je op "=" klikt zorg je dat het label zichtbaar wordt en het tekstvak niet. In feite achter dus. Je maakt bij het klikken op "=" je tekstvak leeg en plaatst het resultaat in het label, dit mag ook een ander tekstvak zijn.
Public Class Form1
Dim totaal As Integer
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
TextBox2.Visible = False
TextBox1.Visible = True
TextBox1.Text &= 1
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
TextBox2.Visible = False
TextBox1.Visible = True
TextBox1.Text &= 3
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
totaal = totaal + Val(TextBox1.Text)
TextBox1.Clear()
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
totaal = totaal + Val(TextBox1.Text)
TextBox2.Text = totaal.ToString()
totaal = 0
TextBox1.Clear()
TextBox1.Visible = False
TextBox2.Visible = True
End Sub
End Class
PublicClass Form1
Dim totaal AsInteger
PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Button1.Click
TextBox2.Visible=False
TextBox1.Visible=True
TextBox1.Text&=1
EndSub
PrivateSub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Button2.Click
TextBox2.Visible=False
TextBox1.Visible=True
TextBox1.Text&=3
EndSub
PrivateSub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Button3.Click
totaal = totaal +Val(TextBox1.Text)
TextBox1.Clear()
EndSub
PrivateSub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Button4.Click
totaal = totaal +Val(TextBox1.Text)
TextBox2.Text= totaal.ToString()
totaal =0
TextBox1.Clear()
TextBox1.Visible=False
TextBox2.Visible=True
EndSub
EndClass
Ik heb rap iets ineengeflapt en zo ziet ongeveer de code eruit. Bij het klikken op de "=" bereken je het totaal, zet die in het tweede tekstvak en maakt hem visible, het eerste tekstvak niet-visible en leeg en zet je totaal op nul. Bij het klikken van een getal begin je gewoon opnieuw.
bedankt voor de uitleg, na een klein beetje dnk werk was ik al zelf bij de eerst oplossing gekomen, maar is het niet gewoon mogelijk om bv $getal1 = "" te doen zoals bij php?
want nu ging het zo 1 + 1 = 2 --> +1 (was dan 1+1+1+1= 4)
dus ik zou gewoon een lege waarde moeten hebben
als het echt niet zou gaan gebruik ik wel de werkzijze van jou titjes
Ik zet totaal toch ook terug op 0. Maar je wil je resultaat laten zien dus kan je niet de waarde van het tekstvak leegmaken. Je moet zorgen dat je tekstvak leeg is en toch je resultaat in dat vak kunnen laten zien. Wat je ook kan doen is wanneer je op "=" klikt een boolean op True zetten en wanneer je op een getal-knop klikt kijken of de boolean True of False is en als het True is eerst het tekstvak leegmaken en anders gewoon doen wat je al deed.
ik denk dat ik het dan gewoon zo ga doen,
*gebruiker klikt obv op nummer 1
-nummer 1 verschijnt
- de "+" wordt ingedrukt en nummer 1 verdwijnt
- nummer 2 wordt in gedrukt en de + verdwijnt
- er wordt op "=" gedrukt en nummer 2 verdwijnt
- de uitkomst verschijnt en nummer 1 wordt gelijk gesteld aan 0 zodat ik kan verder rekenen
En als je nu op een getal klikt komt dat bij de uitkomst er bij, niet opgeteld maar ernaast. Stel in je tekstvak staat 12 als uitkomst en je zet totaal op 0 en al wat je wilt. Toch als je dan nu op 3 klikt komt er in het tekstvak 123 te staan!
Nee want het resultaat staat in het tekstvak en kan je niet leegmaken. Maar als je het dan niet leegmaakt en opnieuw een getal invoert zal dat getal bij in het tekstvak komen zoals ik daarnet al zei. Met hoeveel variabelen je ook werkt, probeer maar!
ja eerst wordt het resultaat getoont dat is dan totaal2, als dan op de volgende bewerking wordt geduwd (bv + of iets anders) wordt eerst het vakje leeg gemaakt
Hetgeen je nu zegt had je daarvoor al in je code, zelfs zonder die tweede variabele (totaal2). Mar wat als je dan na op "=" gedrukt te hebben opnieuw een getal ingeeft om een nieuwe berekening te doen, dus niet terug eender welke bewerking?
ja ik heb dus het idee om ook met -, x, / te werken laten vallen. anders werd het veel te complex. Maar nu moet ik nog juist zie op te lossen dat ik geowon kan verder rekenen
Nee nee je moet het idee niet laten vallen, je bent goed op weg! Alle begin is wat moeilijk. Doe het eerst alleen met + en dan de rest er bij, dat is gemakkelijker om te doen. En doe het dan zoals ik al zei: als er op "=" geklikt wordt zet je een boolean op true en als er dan op een getal geklikt wordt zet je het tekstvak leeg, zo niet doe je het zoals je het al had. Als het niet lukt geef ik je m'n volledige code met commentaar erbij. Maar ik wil dat je eerst even zelf nadenkt en probeert, zo leer je het het best!
ja zeker als ik zelf zoek gaat leer je het beter, ik ga nu dan proberen al eerst met die bolean enz en daarna zie ik wel wat ik doe
EDIT: wat doe ik verdeer met die bolean, ikz et die op true en moet ik die dan ergens controleren. Ik dacht een controle te plaatsen na een button click
Ja, bij het klikken van de "="-knop zet je die op true en als je dan op een getal-knop klikt kijk je of die op true staat. Zo ja, maak je je tekstvak leeg. Zo nee, doe je niets.
Private Sub nr0_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles nr0.Click
If verder_nieuw = True Then
display.Clear()
End If
display.Text = display.Text & nr0.Text
End Sub
PrivateSub nr0_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles nr0.Click