Avatar billede esbencoldingbroe Nybegynder
07. november 2001 - 22:10 Der er 8 kommentarer og
1 løsning

lommeregner i vB

Jeg er nybegynder i VisualBasic og skal til prøve imorgen ;D
Jeg skal lave en lommeregner og det skulle efter min mening virke med følgende script. Jeg kan ikke selv finde fejlen er der nogle af jer hardcore der kan?

her er koden for pluskomandoen:
Private Sub cmdplus_Click()
lbltal1.Caption = Txttalfelt.Text
Txttalfelt.Text = \"\"
lblregneart.Caption = \"plus\"
End Sub


når jeg trykker på et tal, og plus knappen efterfølgende, får jeg fejlmeddelelse:

object required
og følgende blir markeret som fejl:
lbltal1.Caption = Txttalfelt.Text



hele coden for programmet er her:

Private Sub cmddivider_Click()
lbltal1.Caption = Txttalfelt.Text
Txttalfelt = \"\"
lblregneart.Caption = \"divider\"
End Sub

Private Sub cmdgange_Click()
lbltal1.Caption = Txttalfelt.Text
Txttalfelt = \"\"
lblregneart.Caption = \"gange\"
End Sub

Private Sub cmdminus_Click()
lbltal1.Caption = Txttalfelt.Text
Txttalfelt = \"\"
lblregneart.Caption = \"minus\"
End Sub

Private Sub cmdplus_Click()
lbltal1.Caption = Txttalfelt.Text
Txttalfelt.Text = \"\"
lblregneart.Caption = \"plus\"
End Sub

Private Sub lbl0_Click()
Txttalfelt.Text = Txttalfelt.Text & \"0\"
End Sub

Private Sub lbl1_Click()
Txttalfelt.Text = Txttalfelt.Text & \"1\"
End Sub

Private Sub lbl2_Click()
Txttalfelt.Text = Txttalfelt.Text & \"2\"
End Sub

Private Sub lbl3_Click()
Txttalfelt.Text = Txttalfelt.Text & \"3\"
End Sub

Private Sub lbl4_Click()
Txttalfelt.Text = Txttalfelt.Text & \"4\"
End Sub

Private Sub lbl5_Click()
Txttalfelt.Text = Txttalfelt.Text & \"5\"
End Sub

Private Sub lbl6_Click()
Txttalfelt.Text = Txttalfelt.Text & \"6\"
End Sub

Private Sub lbl7_Click()
Txttalfelt.Text = Txttalfelt.Text & \"7\"
End Sub

Private Sub lbl8_Click()
Txttalfelt.Text = Txttalfelt.Text & \"8\"
End Sub

Private Sub lbl9_Click()
Txttalfelt.Text = Txttalfelt.Text & \"9\"
End Sub

Private Sub lblerligmed_Click()
If lblregneart.Caption = \"plus\" Then
Txttalfelt.Text = Val(Txttalfelt.Text) + _
Val(lbltal1.Caption)
End If
If lblregneart.Caption = \"minus\" Then
Txttalfelt.Text = Val(Txttalfelt.Text) + _
Val(lbltal1.Caption)
End If
If lblregneart.Caption = \"gange\" Then
Txttalfelt.Text = Val(Txttalfelt.Text) + _
Val(lbltal1.Caption)
End If
If lblregneart.Caption = \"divider\" Then
Txttalfelt.Text = Val(Txttalfelt.Text) + _
Val(lbltal1.Caption)
End If
End Sub

Private Sub lblkomma_Click()
Txttalfelt.Text = Txttalfelt.Text & \".\"
End Sub
Avatar billede joha0147 Nybegynder
07. november 2001 - 23:09 #1
(Foreslag)
hvorfor ligger du ikke bare tallene og tegnene ind i 2 variabler! Så bahøver du ikke at have de to labler eller hvad der er du bruger til at opbevare dem i
Avatar billede joha0147 Nybegynder
07. november 2001 - 23:14 #2
hvis du nu siger
Dim tal1 As Double
øverst og så bruger den til at opbevare tallet i!

eksempel:
tal1 = Txttalfelt.Text

Det skulle gerne virke! Og så skal du bare erstatte de steder hvor du bruger lbltal1 med tal1! Hvis du har problemer kan du kontakte mig på icq: 125803918 
Avatar billede joha0147 Nybegynder
07. november 2001 - 23:16 #3
du behøver foresten heller ikke at bruge val til at få værdien af Txttalfelt.Text
Avatar billede joha0147 Nybegynder
07. november 2001 - 23:21 #4
Det her kan måske give dig en ide om hvad jeg mener:

Dim tal1 As Double
Dim symbol As String
Private Sub cmddivider_Click()
tal1 = Txttalfelt.Text
Txttalfelt = \"\"
symbol = \"divider\"
End Sub

Private Sub cmdgange_Click()
tal1 = Txttalfelt.Text
Txttalfelt = \"\"
symbol = \"gange\"
End Sub

Private Sub cmdminus_Click()
tal1 = Txttalfelt.Text
Txttalfelt = \"\"
symbol = \"minus\"
End Sub

Private Sub cmdplus_Click()
tal1 = Txttalfelt.Text
Txttalfelt.Text = \"\"
symbol = \"plus\"
End Sub

Private Sub lbl0_Click()
Txttalfelt.Text = Txttalfelt.Text & \"0\"
End Sub

Private Sub lbl1_Click()
Txttalfelt.Text = Txttalfelt.Text & \"1\"
End Sub

Private Sub lbl2_Click()
Txttalfelt.Text = Txttalfelt.Text & \"2\"
End Sub

Private Sub lbl3_Click()
Txttalfelt.Text = Txttalfelt.Text & \"3\"
End Sub

Private Sub lbl4_Click()
Txttalfelt.Text = Txttalfelt.Text & \"4\"
End Sub

Private Sub lbl5_Click()
Txttalfelt.Text = Txttalfelt.Text & \"5\"
End Sub

Private Sub lbl6_Click()
Txttalfelt.Text = Txttalfelt.Text & \"6\"
End Sub

Private Sub lbl7_Click()
Txttalfelt.Text = Txttalfelt.Text & \"7\"
End Sub

Private Sub lbl8_Click()
Txttalfelt.Text = Txttalfelt.Text & \"8\"
End Sub

Private Sub lbl9_Click()
Txttalfelt.Text = Txttalfelt.Text & \"9\"
End Sub

Private Sub lblerligmed_Click()
If symbol = \"plus\" Then
Txttalfelt.Text = tal1 + Txttalfelt.Text
End If
If symbol = \"minus\" Then
Txttalfelt.Text = tal1 - Txttalfelt.Text
End If
If symbol = \"gange\" Then
Txttalfelt.Text = tal1 * Txttalfelt.Text
End If
If symbol = \"divider\" Then
Txttalfelt.Text = tal1 / Txttalfelt.Text
End If
End Sub

Private Sub lblkomma_Click()
Txttalfelt.Text = Txttalfelt.Text & \".\"
End Sub
Avatar billede joha0147 Nybegynder
07. november 2001 - 23:21 #5
held og lykke med prøven! :D
Avatar billede esbencoldingbroe Nybegynder
07. november 2001 - 23:24 #6
tak skal du have..
jeg kan godt se din point
Avatar billede jelzin101 Praktikant
07. november 2001 - 23:29 #7
det kan også laves lidt smartere.... det er et ex. som jeg aldrig blev færdig med da jeg fandt ud af at det var smartere at lave det med stack...


Dim f(0 To 15)
Dim m1 As Integer
Dim matc As Integer

Private Sub Command1_Click(Index As Integer)
Select Case Index

Case 0 To 9: Label1.Caption = Label1.Caption & Index

Case 10 To 15: m1 = Label1.Caption: Label1.Caption = \"\"
              matc = Index
       
End Select

End Sub

Private Sub Form_Load()
For i = 0 To 9
f(i) = i
Next i
f(10) = \"/\": f(11) = \"*\": f(12) = \"+\": f(13) = \"-\"
f(14) = \"=\": f(15) = \",\"
For i = 0 To 15
Command1(i).Caption = f(i)
Next i
End Sub
Avatar billede joha0147 Nybegynder
08. november 2001 - 07:18 #8
ja det havde jeg ikke tænkt på men jeg er også lige begyndt på at programmere i VB Så jeg kender ikke så awfull meget til det endnu! Men tak fordi du nævner det!
Avatar billede jelzin101 Praktikant
08. november 2001 - 17:53 #9
np :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester