Log in

View Full Version : To mr perito


neo_lover2000
Jun 1, 2009, 08:00 PM
Sorry for the email link, I just want to show you the pic of the calculator,
Sorry if I cannot explain you clearly what I want to do, even me I'm getting confuse now.
I have working theory but cannot express in code.any way I am optimistic that I can learn this VB I am only on the second week of the class, still lot of time to learn.
Thank you again

Perito
Jun 1, 2009, 08:42 PM
That's OK. I'm sure you'll do fine. I'll try to show you, tomorrow, how best to do what I think you want to do.

Perito
Jun 2, 2009, 06:18 AM
Try this code and see if it doesn't do more of what you want it to do. This probably doesn't do exactly what you want it to do, but since I don't know exactly what you want to do, this is what I came up with.

There are plenty of things that may be done to change its behavior. Notice that I used a "flag" (a Boolean variable), that I named "FirstValueEntered". This value is False if no first value has been entered yet. You could also simply examine the contents of TextNum1 and see if that's empty.

The user can type values directly into the text boxes, since they aren't read-only. However, the value of "FirstValueEntered" makes it impossible to enter a second number until a first number has been entered.



'-------------------------------------------------------------
Dim first As Long
Dim second As Long
Dim sign As String
Dim FirstValueEntered As Boolean

Private Sub Command1_Click()
' Put the entered number into TextNum1.Text or TextNum2.Text
' depending on the "FirstValueEntered" flag.
If FirstValueEntered = True Then ' If FirstValueEntered then put the second value into its location.

TextNum2.Text = TextNum2.Text + Command1.Caption

Else ' Put the first number into its location

TextNum1.Text = TextNum1.Text + Command1.Caption
TextDisplay.Text = ""

End If
End Sub

Private Sub cmdPlus_Click()

If (FirstNumberEntered) And (TextNum2.Text <> "") Then ' make sure two numbers have been entered.

first = Val(TextNum1.Text)
second = Val(TextNum2.Text)
first = first + second
TextDisplay.Text = first ' keep the sum.
TextFlag.Text = TextFlag.Text & sign & TextNum2.Text ' Keep the list of operations
second = 0
TextNum1.Text = first
TextNum2.Text = ""
sign = cmdPlus.Caption

ElseIf TextNum1.Text <> "" Then ' Make sure something is really there.

FirstValueEntered = True
TextFlag.Text = TextNum1.Text ' Put the first number in TextFlag.
sign = cmdPlus.Caption

End If
End Sub

Private Sub cmdC_Click()
TextDisplay.Text = ""
TextNum1.Text = ""
TextNum2.Text = ""
TextFlag.Text = ""
FirstValueEntered = False ' Clear the FirstValueEntered flag
End Sub

Private Sub cmdEq_Click()
first = Val(TextNum1.Text)

if TextNum2.Text <> "" then
second = Val(TextNum2.Text)
Else
second = 0
End If

If sign = "+" then
TextDisplay = first + second
Else
TextDisplay = "?"
End If

TextNum1.Text = ""
TextNum2.Text = ""
TextFlag.Text = ""
FirstValueEntered = False ' Clear the FirstValueEntered flag

End Sub

Private Sub Form_Load()
FirstValueEntered = False ' This probably isn't necessary, but it doesn't hurt to make sure the flag is clear.
End Sub