In this lesson, we shall learn some basic techniques in writing the VB code. First of all, we should understand that each control or object in VB is able to run numerous kinds of events. These events are listed in the dropdown list in the code window, that is displayed when you double-click on an object and click on the procedures’ box. Among the events are loading a form, clicking on a command button, pressing a key on the keyboard or dragging an object and more. For each event, you need to write an event procedure so that it can perform an action or a series of actions.
To start writing code for an event procedure, you need to double-click an object to enter the VB code window. For example, if you want to write code for the event of clicking a command button, you double-click the command button and enter the codes in the event procedure that appears in the code window, as shown in Figure 4.1.
The structure of an event procedureis as follows:
Private Sub Command1_Click VB Statements End Sub
You enter the codes in the space between Private Sub Command1_Click............. End Sub.The keyword Sub actually stands for a sub procedure that made up a part of all the procedures in a program or a module. The program code is made up of a number of VB statements that set certain properties or trigger some actions. The syntax of the Visual Basic’s program code is almost like the normal English language, though not exactly the same, so it is fairly easy to learn.
The syntax to set the property of an object or to pass a certain value to it is :
where Object and Property are separated by a period (or dot). For example, the statement Form1.Show means to show the form with the name Form1, Iabel1.Visible=true means label1 is set to be visible, Text1.text=”VB” is to assign the text VB to the text box with the name Text1, Text2.text=100 is to pass a value of 100 to the text box with the name text2, Timer1.Enabled=False is to disable the timer with the name Timer1 and so on. Let’s examine a few examples below:
Private Sub Command1_click() Label1.Visible=false Label2.Visible=True Text1.Text="You are correct!" End sub
Private Sub Command1_click() Label1.Caption="Welcome" Image1.visible=true End sub
Private Sub Command1_click() Pictuire1.Show=true Timer1.Enabled=True Lable1.Caption="Start Counting" End sub
This is a counter which start counting after the user click on a command button. In this program, we insert a label, two command buttons and a Timer control. The label acts as a counter, one of the command buttons is to start the counter and the other one is to stop the counter. The Timer control is a control that is only used by the developer, it is invisible during runtime and it does not allow the user to interact with it.
The Timer's Interval property determine how frequent the timer changes. A value of 1 is 1 milliseconds which means a value of 1000 represents 1 second. In this example, we set the interval to 100, which represents 0.1 second interval. In addition, the Timer's Enabled property is set to false at design time as we do not want the program to start counting immediately, the program only start counting after the the user clicks on te "Start Counting" button. You can also reset the counter using another command button.
Dim n As Integer Private Sub cmd_StartCount_Click() Timer1.Enabled = True End Sub Private Sub cmd_Stop_Click() Timer1.Enabled = False End Sub Private Sub Command1_Click() Lbl_Display.Caption = 0 End Sub Private Sub Timer1_Timer() n = n + 1 Lbl_Display.Caption = n End Sub
* We declare the variable n in the general area. After the Timer1 is enabled, it will add 1 to the preceding number using n=n+1 after every interval untill the user click on the "Stop Counting" button.
This program display a message whether the label is being click once or click twice. In this program, insert a label and rename it as MyLabel and change its caption to "CLICK ME". Next, key in the following codes:
Private Sub MyLabel_Click() MyLabel.Caption = "You Click Me Once" End Sub Private Sub MyLabel_DblClick() MyLabel.Caption = "You Click Me Twice!" End Sub
Running the program and click the label once, the "CLICK ME" caption will change to "You Click Me Once". If you click the label twice, the "CLICK ME" caption will change to "You Click Me Twice!".
In Visual Basic, most of the syntaxes resemble the English language. Among the syntaxes are Print, If…Then….Else….End If, For…Next, Select Case…..End Select , End and Exit Sub. For example, Print “ Visual Basic” is to display the text Visual Basic on screen and End is to end the program.
Program code that involves calculations is fairly easy to write, just like what you do in mathematics. However, in order to write an event procedure that involves calculations, you need to know the basic arithmetic operators in VB as they are not exactly the same as the normal operators , except for + and - . For multiplication, we use *, for division we use /, for raising a number x to the power of n, we use x ^n and for square root, we use Sqr(x). VB offers many more advanced mathematical functions such as Sin, Cos, Tan and Log, they will be discussed in lesson 10. There are also two important functions that are related to arithmetic operations, i.e. the functions Val and Str$ where Val is to convert text to a numerical value and Str$ is to convert numerical to a string (text). While the function Str$ is as important as VB can display a numeric value as string implicitly, failure to use Val will result in the wrong calculation. Let’s examine Example 4.4 and example 4.5.
Private Sub Form_Activate() Text3.text=text1.text+text2.text End Sub
Private Sub Form_Activate() Text3.text=val(text1.text)+val(text2.text) End Sub
When you run the program in example 4.4 and enter 12 in textbox1 and 3 in textbox2 will give you a result of 123, which is wrong. It is because VB treat the numbers as string and so it just joins up the two strings. On the other hand, running exampled 4.5 will give you the correct result, i.e., 15.