|
| Endnu et problem fra begynderen Fra : Dennis Olesen |
Dato : 22-12-03 15:50 |
|
Vi har fået til opgave at lave en lommeregner. Der har jeg fået et problem.
Option Explicit
Dim num1, num2, reslut As Single
Dim operator As String * 1
Sub One() 'number 1
form1.label1.Caption = form1.label1.Caption & "1"
End Sub
Sub two() ' number 2
form1.label1.Caption = form1.label1.Caption & "2"
End Sub
Sub there() ' number 3
form1.label1.Caption = form1.label1.Caption & "3"
End Sub
Sub four() ' number 4
form1.label1.Caption = form1.label1.Caption & "4"
End Sub
Sub five() ' number 5
form1.label1.Caption = form1.label1.Caption & "5"
End Sub
Sub six() ' number 6
form1.label1.Caption = form1.label1.Caption & "6"
End Sub
Sub seven() ' number 7
form1.label1.Caption = form1.label1.Caption & "7"
End Sub
Sub eight() ' number 8
form1.label1.Caption = form1.label1.Caption & "8"
End Sub
Sub nine() ' number 9
form1.label1.Caption = form1.label1.Caption & "9"
End Sub
Sub zero() ' number 0
form1.label1.Caption = form1.label1.Caption & "0"
End Sub
Sub clear()
form1.label1.Caption = ""
End Sub
Sub add()
num1 = Val(form1.label1.Caption)
form1.label1.Caption = ""
operator = "+"
End Sub
Sub equals()
num2 = Val(form1.label1.Caption)
If operator = "+" Then
result = num1 + num2
End If
If operator = "-" Then
result = num1 - num2
End If
If operator = "x" Then
result = num1 * num2
End If
' Stopper division af 0 using a logical AND
If operator = "/" And num2 = 0 Then
MsgBox "You can`t divide by zero."
Exit Sub
End If
If operator = "/" Then
result = num1 / num2
End If
form1.label1.Caption = result
'num1=0 'Resets vaiabler
'num2=0 'for at se hvad der sker
Call list
End Sub
Sub multiply()
num1 = Val(form1.label1.Caption) 'konverterer integer to string.
form1.label1.Caption = "" ' Renser labelen.
operator = "x"
End Sub
Sub divide()
num1 = Val(form1.label1.Caption)
form1.label1.Caption = ""
operator = "/"
End Sub
Sub subtract()
num1 = Val(form1.label1.Caption)
form1.label1.Caption = ""
operator = "-"
End Sub
Sub list()
'If result = 0 Then
' exit sub
'end if
form1.list1.AddItem result, 0
If form1.list1.ListCount = 11 Then
form1.list1.RemoveItem 10
End If
End Sub
Sub endit()
End
End Sub
Når man tykker på 1 kommer fejlen "Method or data member not found" og ordet
caption bliver markeret i line
Sub One() 'number 1
form1.label1.Caption = form1.label1.Caption & "1"
End Sub
Jeg håber i kan hjælpe mig lidt vidre. Hvad skal man bruge ordet caption til
i den linie ?
MVH
Dennis Olesen
| |
Tomas Christiansen (22-12-2003)
| Kommentar Fra : Tomas Christiansen |
Dato : 22-12-03 23:46 |
|
Dennis Olesen skrev:
> Dim num1, num2, reslut As Single
Det ser ikke rigtigt ud. Mon ikke det er meningen at num1 og num2 skal
erklære af typen Single?
Sådan som linien ser ud nu, erklæres num1 og num2 af typen Variant.
Der bør nok i stedet stå:
Dim num1 As Single, num2 As Single, reslut As Single
> Sub One() 'number 1
> form1.label1.Caption = form1.label1.Caption & "1"
> End Sub
Hvis du har lagt en TextBox på din form og kaldt den "Label1", så vil du få
fejlen "Method or data member not found".
Label1 bør naturligvis være en Label.
> Sub there() ' number 3
Der skulle nok have stået "three".
> If operator = "+" Then
....
> If operator = "-" Then
....
> If operator = "x" Then
....
> If operator = "/" Then
Her ville jeg nok i stedet have brugt "Select Case operator".
> Sub endit()
> End
> End Sub
Du bør erstatte End med Unload Me. Hvis du har andre forme åbne, skal de
også eksplicit lukkes, f.eks. med Unload Form1.
> form1.label1.Caption = form1.label1.Caption & "1"
....
> Jeg håber i kan hjælpe mig lidt vidre. Hvad skal man bruge ordet caption
til
> i den linie ?
I forbindelse med Label, indeholder Caption den tekst som skal vises i
labelen.
-------
Tomas
| |
Dennis Olesen (23-12-2003)
| Kommentar Fra : Dennis Olesen |
Dato : 23-12-03 10:30 |
|
Jeg takker for svaret, så er der noget at arbejde med igen.
MVH
Dennis Olesen
"Tomas Christiansen" <toc-01-nospam@blikroer.dk> skrev i en meddelelse
news:bs7s2v$e85$1@news.cybercity.dk...
> Dennis Olesen skrev:
> > Dim num1, num2, reslut As Single
>
> Det ser ikke rigtigt ud. Mon ikke det er meningen at num1 og num2 skal
> erklære af typen Single?
> Sådan som linien ser ud nu, erklæres num1 og num2 af typen Variant.
> Der bør nok i stedet stå:
> Dim num1 As Single, num2 As Single, reslut As Single
>
> > Sub One() 'number 1
> > form1.label1.Caption = form1.label1.Caption & "1"
> > End Sub
>
> Hvis du har lagt en TextBox på din form og kaldt den "Label1", så vil du
få
> fejlen "Method or data member not found".
> Label1 bør naturligvis være en Label.
>
> > Sub there() ' number 3
>
> Der skulle nok have stået "three".
>
> > If operator = "+" Then
> ...
> > If operator = "-" Then
> ...
> > If operator = "x" Then
> ...
> > If operator = "/" Then
>
> Her ville jeg nok i stedet have brugt "Select Case operator".
>
> > Sub endit()
> > End
> > End Sub
>
> Du bør erstatte End med Unload Me. Hvis du har andre forme åbne, skal de
> også eksplicit lukkes, f.eks. med Unload Form1.
>
> > form1.label1.Caption = form1.label1.Caption & "1"
> ...
> > Jeg håber i kan hjælpe mig lidt vidre. Hvad skal man bruge ordet caption
> til
> > i den linie ?
>
> I forbindelse med Label, indeholder Caption den tekst som skal vises i
> labelen.
>
> -------
> Tomas
>
| |
|
|