Introduction to Visual Basic Event-driven programming –The interface for a VB program consists of...
-
date post
20-Dec-2015 -
Category
Documents
-
view
254 -
download
1
Transcript of Introduction to Visual Basic Event-driven programming –The interface for a VB program consists of...
Introduction to Visual Basic
• Event-driven programming– The interface for a VB program consists of one
or more forms, containing one or more controls (screen objects).
– Form and control has a number of events that it can respond to. Typical events include clicking a mouse button, type a character on the keyboard, changing a value, etc.
– Event procedure
Text Box
• Properties:– Bound/Unbound, Enabled, Locked, Multiline,
Password Char, ScrollBar, Text
• Properties can be set at the design time or at the run time using codes.
• To refer to a property: – ControlName.PropertyName– Ex. Text1.Text
Demo
Num1
Num2
Sum =
Control propertiesEvent: Click, MouseMove, FormLoad, etc.Event proceduresSum: text3.text=CStr(CDbl(text1.text)+CDbl(text2.text))VB Constant: vbGreen, vbRed
VB Projects
• A VB project consists of several files. Always create a project folder and keep all project files in the folder.– Project file: extension .vbp– Form modules:
• .frm
• .frx: Graphics and other binary data.
Configure VB IDE
• Tools/Options– Editor: Require Variable Declaration
• Option Explicit
– Editor Format, General, Docking, Environment, Advanced
• Debug– View/Watch Window
Introductory VB Topics – Appendix C
• Declaring variables– DIM, PUBLIC, PRIVATE, STATIC, CONST– Boolean, Integer, Long, Single, Double, Currency, Date,
Variant, Object– Ex.: DIM dblIntRate AS Double
• Variable scope– Local: declared in a procedure– Global: declared in a general section, or with Public
(referring a variable declared in other form may require form name to qualified that variable. Ex. Form1.PubVar)
• Data conversion– CStr, Ccur, CDbl, Cint, CLng, CSng, Val, etc.– VB .NET: Convert class
IF Statement
• IF condition THEN
statements
[ELSEIF condition-n THEN
[elseifstatements]
[ELSE
[elsestatements]]]
End If
Select Case Structure
• SELECT CASE testexpression
[CASE expressionlist-n
[Statements]
[CASE ELSE
[elsestatements]
END SELECT
Select Case Example• SELECT CASE temperature
CASE <40Text1.text=“cold”
CASE 40 to 60Text1.text=“cool”
CASE 60 to 80Text1.text=“warm”
CASE ELSEText1.text=“Hot”
End Select
Loop
• FOR index – start TO end [STEP step]
[statements]
[EXIT FOR]
NEXT index
DO [{WHILE| UNTIL} condition]
[statements]
[EXIT DO]
LOOP
Do While/Do UntilPrivate Sub Command1_Click()Dim counter As Integercounter = 0Do While counter <= 5 Debug.Print counter counter = counter + 1LoopText1.Text = counterEnd Sub
Private Sub Command2_Click()Dim counter As Integercounter = 0Do Until counter > 5 Debug.Print counter counter = counter + 1LoopText1.Text = counterEnd Sub
Procedures• Tools/ Add Procedure
– Sub procedure• To call a sub procedure SUB1
– SUB1 Argument1, Argument2,…– CALL SUB1(Argument1, Argument2, …)
– Function• Private Function tax(salary)• tax = salary * 0.1• End Function
– VB .NET• Private Function tax(salary)• Return salary * 0.1• End Function
Call by Reference Call by Value
• ByRef– Default– The address of the item is passed. Any changes
made to the passing variable are made to the variable itself.
• ByVal– Only the variable’s value is passed.
ByRef, ByVal example
Private Sub Command1_Click()
Dim myStr As String
myStr = Text1.Text
ChangeText myStr
Text1.Text = myStr
End Sub
Private Sub ChangeTextRef(ByRef strInput As String)
strInput = "New Text"
End Sub
VB User Interface Objects
• Form• Menu:
– DropDown, PopUp
• InputBox• MsgBox• Standard Controls:
– Text Box, List Box, Option Button, Check Box, Command Button, Frame, etc.
• Other Controls:– Project/Components
Form
• Modeless form: Other forms can receive input focus while this form remains active.
• Modal form: No other form can receive focus while this form remains active.– Formname.Show vbModal– Ex. Do you want to save the change?
• FormName.Hide or Me.Hide• Unload formName or Unload Me• Form level variables
Form Events
• Events occur to a form as it is loaded:– Initialize: When a form instance is created from a class.
– Load: Form is loaded into memory. Use this event for initialization code.
– Activate/Deactivate
• Events occur to a form as it is unloaded:– QueryUnload: Are you sure you want to close?
– Unload: End-of-processing code
– Terminate
DropDown Menu
– Select the form– Select Tools/MenuEditor– The caption and name properties are required– Use an & to specify an access key in the
caption. Ex. &File, Sho&s– Write a event procedure for each menu item.
• Tools/MenuEditor– Uncheck Visible box
• Activated by right click the control.• MouseUp event
– vbLeftButton - 1– vbRightButton – 2
• Use form’s PopUpMenu method to call the popup menu.
PopUp (Shortcut) Menu
PopUp Code ExamplePrivate Sub Command1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = vbRightButton Then
form1.PopupMenu mnuPop
End If
End Sub
Private Sub mnuPopSub_Click()
MsgBox ("hello there")
End Sub
InputBox
cname = InputBox("Please enter your name:")
If cname = vbNullString Then
MsgBox ("customer click cancel")
Else
Text1.Text = cname
End If
MsgBox
• MsgBox(prompt[, buttons] [, title])
• Buttons: – Group 1: vbOKonly, vbOKCancel,
vbAbortRetryIgnore, vbYesNoCancel, vbYesNo, vbRetryCancel
– Group 2: vbQuestion, vbExclamation, vbInformation, vbCritical
MsgBox
• MsgBox return values:– vbOK – 1– vbCancel – 2– vbAbort – 3– vbRetry – 4– vbIgnore – 5– vbYes – 6– vbNo - 7
MsgBox Code Example
Dim returnVal As Integer
returnVal = MsgBox("erase text box 1", vbYesNo+vbQuestion)
If returnVal = vbYes Then
Text1.Text = ""
End If
Working with Controls
• Properties– Setting properties at design time– Setting properties at run time
• Methods: controls have very few methods– Move Ex. Text1.Move 2000,2500 (1440 twips/inch)– SetFocus
• Events: click, DblCLick, Change, GotFocus, LostFocus, Mouse Events (down, up, move), Key events(down, up, key press), Validate
Text Box
• Useful properties– Locked: read only
– Password Character
– Multiline
– ScrollBar
– SelText: holds the currently selected text
• Useful events– Change
– Validate
Validate Event Code Example
Private Sub Text1_Validate(Cancel As Boolean)
If CInt(Text1.Text) < 0 Then
Cancel = True
MsgBox (“Pls enter a positive number!")
End If
End Sub
Check Box Example
Private Sub CheckBox1_Click()
If CheckBox1.Value = 1 Then
MsgBox ("checkbox1 checked")
Else
MsgBox ("checkbox1 unchecked")
End If
End Sub
Note: CheckBox’s Value - vbChecked, vbUnchecked
Option Button
• Option buttons must be grouped together inside a container such as a frame or a form.
• When the user selects an option all other options in the same group are deselected.
• Option Button’s value: True/False.
Frame Control
• Draw the frame first.
• Next single-click the control to activate it, then move the mouse pointer inside the frame to where you want to place the control.
• Controls in a frame should move with the frame.
Frame ExamplePrivate Sub Option1_Click()If Option1.Value Then Text1.Text = "opt1"End IfEnd SubPrivate Sub Option2_Click()If Option2.Value Then Text1.Text = "opt2"End IfEnd SubPrivate Sub Option3_Click()If Option3.Value Then Text1.Text = "opt3"End If
End Sub
List Box
• Useful properties– List: array of strings that correspond to the text for the
items shown in the list. Must include a subscript.– ListCount– ListIndex: The 0-based index of the currently selected
item. If the 4th item is selected, the index is 3.– Text: selected list item.
• Methods– AddItem– Clear
List Box ExamplePrivate Sub Form_Load()
List1.AddItem "Dates"
List1.AddItem "Brocoli"
List1.AddItem "Oranges"
List1.AddItem "Tomatoes"
List1.AddItem "Apples"
End Sub
Private Sub List1_Click()
Text1.Text = List1.List(List1.ListIndex)
or
Text1.Text=List1.Text
End Sub
Data Control
• Database Name
• Record Source
• Bind field to text box– Data source– Data field
OLE Control
• Embedding an OLE object at design time:– Click Create New– Select the OLE object
• Linking an OLE object at design time:– Click Create From File– Select the object– Click LINK
• Insert OLE object at run-time– Ex. OLE1.InsertObjDlg
Components
• Project/Components
Arrays
• Declaring arrays– Dim arrayName(lowerBound To upperBound)
As dataType
• Dynamic arrays: – Ability to change the size of an array at run
time.– Use dynamic arrays when the size is unknown
at design time, or it varies from one time to another.
Declaring Dynamic Arrays
• Declare the array to be dynamic by omitting the lower and upper bounds in the Dim statement.
• Later, when the program needs a certain number of elements in the array, use the ReDim statement to assign the array size.
• Each time a ReDim is executed, the values currently stored in the array are lost. To keep those data, use the Preserve keyword.
Dynamic Array Example
Dim StudentAge()
….
ReDim StudentAge(1 to TotalStudents)
…
Control Arrays
• A set of controls of the same type that all have the same name distinguished by a subscript. They share the same events, and therefore share the code in the event procedure.
• Createing a control array:– Add control with the same name.
• Add or delete control elements at run time:– Load/Unload
Error Handling• On Error GoTo errorhandler (a label)• Built-in Err object properties:
– Number – Error number– Source – Name of VB ile in which error occurred– Description – error message
• Continue the program execution:– Resume: returns execution to the statement that caused
the error.– Resume Next– Resume label: Jumps to the line containing the label.– Exit Sub
• Debug: Debug.Print varName
Error Handling Example
Private Sub cmdDivide_Click()
On Error GoTo DivideErrorHandler
lalAnswer.Caption=CStr(CDbl(Text1.text)/CDbl(Text2.Text))
Exit Sub
DivideErrorHandler:
MsgBox(CStr(Err.Number) & “: “ & Err.Description)
Exit Sub
End Sub
Object• Creating objects from a class
– Declare an object variable with keyword New.• Dim emp as New clsEmployee• Emp.Ename=“Peter”• Emp.Jobcode=1
– Declare an object variable without New. • Object must be created in program using Set.• Dim emp as clsEmployee• Set emp = New clsEmployee• Or set it to an existing object:
– Assume emp2 is an existing object: Set emp = emp2
• Deleting an object: Set objName = Nothing
Collections
• Collections are used to store lists of objects.• More flexible than array:
– No need to declare the number of objects in a collection, no need to ReDim.
– Objects can be added, deleted at any position.– Object can be retrieved from a collection by a
key.
• A collection’s name usually end with a “s”.
Using Collections• Define a collection:
– Ex. Private Customers as New Collection
• Methods:– ADD: Add object to a collection
• Dim Customer as New clsCustomer• Customers.Add(Customer)• Add an object with a key:
– Customers.Add(Customer, Customer.CID)
– Item: Retrieve an object from a collection with a position index (base 1) or with a key.
• Set Customer = Customers.Item(1)• Set Customer = Customer.Item(“C101”)
– Count: Return the number of objects in a collection.– Remove: Delete an object with a position index or key.
Iterating Through a CollectionDim Customer as clsCustomer
Dim Indx as Long
For Indx = 1 to Customers.Count
set Customer = Customers.Item(Indx)
… class operations …
Next Indx
For Each Customer in Customers
… class operations …
Next Customer
Enumerations
• Provide a way to associate meaningful names with a sequence of constant values.
• Define an enumeration using an Enum statement.– Private Enum seasonOfYear– Spring = 1– Summer = 2– Fall= 3– Winter = 4– End Enum– Dim Sales(Spring to Winter) as Double