07. november 2001 - 22:10Der 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
(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
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
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
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
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!
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.