Rekenmachine

Status
Niet open voor verdere reacties.

Daantje950

Gebruiker
Lid geworden
7 nov 2008
Berichten
14
Het rekenmachine is er, maar hij werkt niet helemaal...
De cijfers kan ik intype en dan clearen doet hij ook. Alleen als je bijvoorbeeld 3x4 en dan op enter klikt krijg ik een fout......

Ook heb ik nu een probleem, ik heb hem opgeslagen, maar nu zegt hij dat mijn macro's zijn uitgeschakeld en kan hem dus niet meer afspelen. hoe schakel ik die weer in??? :$

Dit is mijn code wie ziet wat ik fout heb gedaan??? Of heb ik gewoon een te oude versie en kan het niet op de mijne?

Groetjes Daantje


Code:
Option Explicit

Dim FirstNumber As Single
Dim SecondNumber As Single
Dim AnswerNumer As Single
Dim ArithmeticProcess As String

Private Sub cmd1_Click()
txtDisplay.Text = txtDisplay.Text & "1"
End Sub

Private Sub cmd2_Click()
txtDisplay.Text = txtDisplay.Text & "2"
End Sub

Private Sub cmd3_Click()
txtDisplay.Text = txtDisplay.Text & "3"
End Sub

Private Sub cmd4_Click()
txtDisplay.Text = txtDisplay.Text & "4"
End Sub

Private Sub cmd5_Click()
txtDisplay.Text = txtDisplay.Text & "5"
End Sub

Private Sub cmd6_Click()
txtDisplay.Text = txtDisplay.Text & "6"
End Sub

Private Sub cmd7_Click()
txtDisplay.Text = txtDisplay.Text & "7"
End Sub

Private Sub cmd8_Click()
txtDisplay.Text = txtDisplay.Text & "8"
End Sub

Private Sub cmd9_Click()
txtDisplay.Text = txtDisplay.Text & "9"
End Sub

Private Sub cmdClear_Click()
txtDisplay.Text = "0"
End Sub

Private Sub cmdDot_Click()
txtDisplay.Text = txtDisplay.Text & "."
End Sub

Private Sub cmdEnter_Click()
SecondNumber = Val(txtDisplay.Text)
If ArithmeticProcess = "+" Then
AnswerNumber = FirstNumber + SecondNumber
End If
If ArithmeticProcess = "-" Then
AnswerNumber = FirstNumber - SecondNumber
End If
If ArithmeticProcess = "x" Then
AnswerNumber = FirstNumber * SecondNumber
End If
If ArithmeticProcess = "/" Then
AnswerNumber = FirstNumber / SecondNumber
End If
txt.Display = AnswerNumber
End Sub

Private Sub cmdMinus_Click()
FirstNumber = Val(txtDisplay.Text)
txtDisplay.Text = "0"
ArithmeticProcess = "-"
End Sub

Private Sub cmdPlus_Click()
FirstNumber = Val(txtDisplay.Text)
txtDisplay.Text = "0"
ArithmeticProcess = "+"
End Sub

Private Sub cmdShare_Click()
FirstNumber = Val(txtDisplay.Text)
txtDisplay.Text = "0"
ArithmeticProcess = "/"
End Sub

Private Sub cmdTime_Click()
FirstNumber = Val(txtDisplay.Text)
txtDisplay.Text = "0"
ArithmeticProcess = "x"
End Sub

Private Sub UserForm_Click()

End Sub
 
Laatst bewerkt door een moderator:
ja.

Het eerste wat je moet begrijpen is dat je met strings werkt. 'textbox1.text = "4" betekent dat je de string 4 toevoegt, niet het cijfer. Probeer het commando val() eens eroverheen te gooien.[edit]: oh, dat doe je al, nvm[/edit]

Ohja, ook '4x5' is niet goed. Vermenigvuldigen doe je met ' * ', niet met ' x '.


Bovedien, waarom 'txtDisplay.Text = txtDisplay.Text & "4"' ?? Gewoon '4' doet het ook. :thumb:
 
ja.

Het eerste wat je moet begrijpen is dat je met strings werkt. 'textbox1.text = "4" betekent dat je de string 4 toevoegt, niet het cijfer. Probeer het commando val() eens eroverheen te gooien.[edit]: oh, dat doe je al, nvm[/edit]

Ohja, ook '4x5' is niet goed. Vermenigvuldigen doe je met ' * ', niet met ' x '.


Bovedien, waarom 'txtDisplay.Text = txtDisplay.Text & "4"' ?? Gewoon '4' doet het ook. :thumb:


Ik heb dit via een programma, dat is een filmpje en die doet precies voor hoe je het moet doen en die doet het op deze manier, en daar werkt het gewoon... en dat is ook met visaul basic, dan zou het bij mijn toch ook gewoon moeten werken?
 
Dat is visual basic 8 he :p

dat kan best ik heb der geen bale verstand van....

maar wat moet ik aan mijn code veranderen dan, dat als ik op enter druk wel antwoord krijg???

want de rest doet hij alles, als je de 1,2,3 inklikt komt het in het scherm en als je op clear druk gaat het weg,,

behalve als je 1x2 enter doet geeft hij een fout bij

Answer =
 
Hij doet het nu :D dankzij andere versie van VB

Alleen er zit nog een foutje in mijn rekenmachine.....
als je 3x9 doet komt het antwoord er te staan
zodra je dan nieuw sommetje wilt maken blijf het vorige antwoord staan en het cijfer dat je dan intypt komt er achter te staan...... Hoe kan ik dit aanpassen dat dit niet gebeurd?

Alvast bedankt!
 
Kan je je huidige code ff posten? Als ik zo naar de code uit de eerste post kijk zijn er toch wel een paar dingen die veel korter kunnen :)
 
in Private Sub cmdEnter_Click() moet je aangeven dat de uitkomst berekend is(met een boolean), en dan kan je bij de cijfer knoppen wissen als die waarde true is, en die natuurlijk terug op false zetten.

ook kan je in je Sub cmdEnter_Click() beter een select case statement gebruiken dan een zooi ifs.

en dit kan die hele serie click events vervangen :)
Code:
Private Sub cmd_Click(byval sender as object, e as eventargs) handles, cmd1.click, cmd2.click 'enzovoort
txtDisplay.appendtext(ctype(sender, button).name.substring(3,1))
End Sub
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan