Sei sulla pagina 1di 69

Introduction to Programming

Using Visual Basic 6.0


Cheryl Klimack
729-3900
klimack.cheryl@brandonsd.mb.ca

Why VB? Rationale


Easy for beginners to produce a working
program
Capable of high end programs
Graphical
OOP (for the most part)
Affordable
Many free resources available

The VB IDE

View Code

Menu bar

View Object
Project
Explorer
Window

Tool bar

Tool box
Project
Window
Immediate
Window

Properties
Window

View Menu
As in all Windows
applications, simply
choose View from the
menu to view your
different toolboxes,
windows, etc. or to
remove them from the
IDE.
4

Objects
Every VB app has at
least one object the
form.

Other objects are added at design time by


selecting the object from the toolbox and
drawing it on the form. A second way is to
simply double-click the object and it will
appear on the form.

Object Properties
All objects should be named. Each object has a
prefix that is standard in the VB coding world.
For example, the prefix for a form is frm. See the
VB help for a complete list.
Objects have many properties that can be accessed at
design time or at run time.
VB uses dot notation to access propertiesfor
example: lblMessage.Caption = Welcome!
Object

Property

Property
Value

Events
An event procedure is a block of code that
executes in response to an event. A user
event is an action performed by the user
such as a mouse click.

The Inevitable Hello World Program


We will work to
create the
program shown
at the side.
1.

Open VB and
choose a New,
Standard Exe
program.

Hello World
2.

Name the form


frmHelloWorld

3. Type in the
Caption as
shown. Note
it change in
the title bar.

Hello World
4.

Save the project.


Create a new folder
and save your form
in.

5. A second dialog box will


pop to ask for the Project
namechange it to Hello
World as shown to the right
10

Label Object
6.

7.

8.

Add a label
object and
resize it
accordingly.
Change the
name to
lblMessage.
Change the
Caption to
Welcome!
11

Font Property

9. Choose the
Font
property
and make
your font
larger and
of a
different
type.
12

Alignment Property

10. Choose the


Alignment
property
and Center
the label

13

Command Button

11.

12.

Add a
command
button by
double
clicking that
object in the
toolbox.
Move it as
shown.
Name the
button
cmdDisplay
and change the
caption to
Display.

14

Done Button

Add a button
called cmdDone
and change the
caption to Done.
Note: If you choose
to Copy and
Paste a control,
you will get a
message box re:
Control Array.
Answer NO to
this.
13.

15

Time to Code

We will begin coding


with the
cmdDone_Click
event procedure.
14. Double click the
Done button on the
object. This will
open up the code
editor window as
shown. Type in
Unload Me.
16

Unload Me
Adding the code Unload Me to the
cmdDone_Click event tells the computer that
when the control named cmdDone is clicked, the
form (me) will unload.
To run your program, choose Run from the menu,
press F5, or click the Run button on the toolbar.
Clicking the Done button should unload your form.

17

Display Button
The code for the Display button will make the
Caption in the label lblMessage change to
Hello, World.
15. Double click the Display button and type in
the following code:
lblMessage.Caption=Hello, World
Run your program and click the
Done button.
18

Details Default Buttons


It would be good if the user could simply hit the
<Enter> key to have the message change.
16. Choose the Display button, find the Default
property and set it to
True. Run the
program. Note the
dark outline around the
button indicating that it
is Default.

19

Details Keyboard Access Keys


Another standard Windows feature is to be
able to access a key using Alt-?. To create
this ability in your program, change the
Caption property to include an &.
Caption for Display - &Display
Caption for Done D&one.
(You cant have them both be a D
for the hotkey.
20

Moving Your Program and Creating


an exe.
Your program at this point will consist of three files
*.frm
*.vbw
*.vbp
You would need to transport all 3 of these to have it
work properly at a different location.

17. Create an exe by choosing File, Make


Helloworld.exe. Choose your path. This one file,
of course, will allow others to run your program,
but not to edit it.
21

Colors
We can alter the look of your form
with colors and graphics.
18. Select lblMessage. Choose
the Backcolor property, then
Palette.
Select a color of your own choice.
19. Do the same for the Forecolor.
22

Colors on Buttons
You change the color of a buttons
background, but first you must set its
Style property to Graphical.
20. Choose the Display button, then change
the Backcolor and the Style property.
Note that there is no Forecolorthe font stays
black.
23

Graphics
We can also add graphics to some objects.
21. Select the Picture property of
the Form, then choose an
image. This one is at
g:\klimack\images\bonnell.
Change the file type to All
Files if nothing is showing
up.
22. Change your Done button picture property remembering to
24
change the Style to Graphical.

Message Boxes
23.

In your code for the Done button, add this


line:

MsgBox "Have a good day!", vbOKOnly, "Bye


Bye"

25

Comments
Adding comments in VB is done by prefixing your statement
with an apostrophe. For example:
this is a comment and will be ignored by the computer

Comments turn green when typed correctly.


24. At the top of your program, add comments with your
name, date, and project info as such:
Cheryl Klimack
Hello World project
Oct 24 2003

Run your program. We are done!


26

Break Time!

27

Pizza Project
We will create the
project shown to
the left with
checkboxes,
option buttons,
textboxes,
message boxes,
command buttons
and labels.
28

1.

2.
3.

Create a new project by first


removing the current project.
Save as Pizza.
Add a label and format it as
you desire.
Add an image control and
name it imgPizza. The
image seen here is found at
G:\klimack\images.

Note: to resize an image on your


form, you must set the Stretch
property to True.
29

4.

Add and name


labels and
textboxes to
correspond to the
figure at the
right. Dont
worry about
lining them up
perfectly yet.

Choose the Text property and


delete its contents to remove
Text1 from the text boxes.

txtName

lblName
txtPhone
lblPhone
30

Aligning
You can line up objects on your form evenly
by selecting them (holding down the shift
key allows multiple selections) and then
choosing Format, Align, etc. Notice the
other options under the Format menu.
5. Line up your labels and text boxes.
6. Choose both labels and text boxes at the
same time, then select Font and make
them all 10 or 12 point.
31

Frames
Frames are used as containers for other
controls. Usually groups of option buttons
are placed in frames.
7. Add a frame named fraSize.
8. Make the Caption Size.

32

Option Buttons in Frame

These are used when only one button of a group


should be selected. For example, a pizza size
choice cannot be both large and medium at
the same time.
9. Select (but do not
double click) the
Option button control.
Draw 3 buttons inside
of the frame. Name
them optSmall,
optMedium, and
optLarge.

10. Line them up


and make the
same size. Make
their spacing
equal as well.
33

Options on Form

Options on a form but not in a frame function as a


group.
11. Add options for
Pickup and Delivery
as shown. Set the
Value for Pickup to
True
Note: Run the program and
experiment with the buttons.
If you can select 2 in one
group, one of them doesnt
belong. Delete it and
recreate it.

34

Multiline Textboxes with Scroll Bars


12. Add a label
(lblAddress) for Enter
Address and a textbox
(txtAddress) for the
contents of the
address. Make the
Multiline property
True, and set
Scrollbars to Both.
35

Checkboxes

Checkboxes allow the user to select (or


deselect) an option. Any number of
checkboxes in a group may be selected. If
selected, its value is vbChecked, otherwise
it is vbUnchecked.
13. Add a frame for
Toppings
(fraToppings).
14. Add the checkboxes
indicated
(chkPepperoni, etc.)

36

Order and Cancel Buttons


15. Add an Order
and Cancel
button as shown
in the figure at
the right. Make
the Order button
Default. Add
hotkey access.
37

Time to Code!
The specs for this program state that the order
can be cancelled at any time. After order
placement, a message box will appear
asking the user to verify the order as
indicated. If it is verified another message
box will indicate this.

38

Enabling and Disabling


It is a good idea to not let the user make
inappropriate choices if at all possible.
Disable any options that are not applicable at the
current time, and enable them when
appropriate.
16. Select all the checkboxes at once and set the
Enabled property to False. Run the program.
39

Enabling Controls
It would be appropriate for these checkboxes to be
enabled after choosing a pizza size.
17. Double click optSmall, and add this code to the
procedure.
chkPepperoni.enabled=true
Run the program. Click on Small and
Pepperoni should become enabled.
18. Enable each of the checkboxes in the
same manner.
40

Copy and Pasting Code


19. The code for
Medium and Large
will be the same as it
is for Small, so you
can copy and paste it
into those
procedures. Now
choosing any of the
sizes will enable the
checkboxes.

Choose the
procedures
here.

41

The Address Box

We dont need the address


box if the order is for
Pickup, so it should not
be visible until the
Delivery button is
selected.
20. Choose lblAddress and
txtAddress and make
Visible = false in the
properties window.

42

Delivery Option Button


If you choose the Delivery option, these two controls
(lblAddress and txtAddress) should become visible
and the cursor should move to the txtAddress box,
waiting for input.
21. Add the following to the optDelivery_click
txtAddress.Visible = True
lblAddress.Visible = True
txtAddress.SetFocus
43

Pickup Option Button


Just as Delivery should make the Address info
visible, Pickup should make them
invisible.
22. Add the following to the optPickup_click
procedure:
txtAddress.Visible = false
lblAddress.Visible = False
44

Cancel Button
If the user clicks the
Cancel button, all the
info currently entered
should disappear and
the form reset to the
initial screen.
23. Get to the
cmdCancel_click
procedure and enter
the following lines of
code:

'clear the text boxes


txtName.Text = ""
txtPhone.Text = ""
txtAddress.Text = ""

45

Canceling, continued
'clear the size options
optSmall.Value = False

'clear the checkboxes


chkPepperoni.Value = vbUnchecked

optMedium.Value = False

chkSausage.Value = vbUnchecked

optLarge.Value = False

chkMushrooms.Value = vbUnchecked
chkGreenPeppers.Value = vbUnchecked

'set the pickup option

chkExtraCheese.Value = vbUnchecked
chkOnions.Value = vbUnchecked

optPickup.Value = True

46

Canceling, continued
Last of all, disable the checkboxes again and set the focus to txtName.

'disable the checkboxes


chkPepperoni.Enabled = False
chkSausage.Enabled = False
chkMushrooms.Enabled = False
chkGreenPeppers.Enabled = False
chkExtraCheese.Enabled = False
chkOnions.Enabled = False
set focus
txtName.SetFocus
47

Break Time!

48

Global Variables
We are going to
use some Global
variables for
this program.
24. Add the lines
shown to your
program. These
variables can be
used by all the
procedures.
49

Constants
Every time the user selects or de-selects a topping, the topping price
must change. In this case, toppings are 75 cents each.
25. Constants should be declared before variables, and these are global
as well, so add them BEFORE the 2 global variables you just added.

50

Topping Price
We need to ADD to the curToppings every time a new
topping is selected, and SUBTRACT every time one is
de-selected.
26. In each chk procedure, add code similar to the
following, changing the Pepperoni to the appropriate
topping.
If chkPepperoni.value=vbChecked then
curToppings=curToppings + curToppingPrice
Else
curToppings=curToppings curToppingPrice
End if

51

The Immediate Window


For testing purposes, you can View the Immediate
window and see the results of the debug.print
item statement that can be included in the code.
Add this line to each chk procedure.
Debug.print Toppings =
;curToppings
When you run your program, select and de-select
different checkboxes and watch the results in the
immediate window.
52

Debug.Print
statements

Results of
Debug.print
53

Size Price
The size price depends upon whichever option is
selected. Each option procedure needs to have
code similar to the following:
curSize = curSmall add to
optSmall
curSize=curMedium add to
optMedium
curSize=curLarge add to optLarge
54

Total Price
We need to calculate the total due as an
addition of curSize and curToppings.
27. Declare curTotal as a global variable of
type currency.
Private curTotal as currency
in the General section.
55

Calculating the Total


To calculate curTotal, we need to add a line to every
procedure that affects the price.
curTotal=curToppings + curSize
28. Add this line to all the options for size and the
checkboxes. (Thank goodness for copy and paste!)
If you change your Debug.Print statement as shown, you
can watch the totals as you run your program. Use
Edit, Replace to do this.Also, copy and paste it to
your options after the lines that calculate these totals.
29. Debug.Print "Toppings =";
curToppings; "Total is"; curTotal
56

Verifying the Order


Now that we have the totals working properly,
we need to manipulate some strings.
We want a message box similar to the figure
to appear when the Order button is
clicked.
30. Declare a global variable to contain a
string representing the size of the Pizza.
Private strSize as string
57

strSize
In each of the procedures for the size
options, add a line to assign a string to
string size that corresponds with the size.
For example, in optSmall add:
strSize=Small
In optMedium, add strSize=Medium &
in optLarge add strSize=Large.
31.

58

Check for Required Input


32.Add the
following
code to verify
that no
required
options or
textboxes are
left blank.
We do not
have time to
validate the
input today.

Dim blnValidData As Boolean


'error checking
blnValidData = False
If txtName.Text = "" Then
MsgBox "Invalid name"
txtName.SetFocus
ElseIf txtPhone.Text = "" Then
MsgBox "Invalid phone"
txtPhone.SetFocus
to be continued

59

Run your
project and
click the order
button with
some text
boxes left
blank.

ElseIf strSize = "" Then


MsgBox "Invalid size"
optSmall.SetFocus
ElseIf optDelivery.Value = True And
txtAddress = "" Then
MsgBox "Invalid address"
txtAddress.SetFocus
Else
blnValidData=True
End If

60

Create a Toppings List

Once we have validated entry in each required control, we


can create a toppings list. Note the indenting.
33.
'list toppings in a string

vbCrLf carriage return,


line feed

If blnValidData = True Then


If chkPepperoni.Value = vbChecked Then
strToppings = strToppings & vbCrLf &
"Pepperoni"
End If
If chkSausage.Value = vbChecked Then
strToppings = strToppings & vbCrLf &
"Sausage"

&
concatenate
61

Toppings, continued

Copy and paste the if then statement for


Pepperoni 5 times to create appropriate if
statements for all of the toppings, as shown for
Sausage.
A message box can be a quick test to see if this
works:
MsgBox strToppings 'test toppings
string
Delete this line once testing is completed.
62

Delivery Method
The following code can be used to determine the appropriate
string for the method of delivery:
34. Declare a variable strDeliveryMethod as string in the Order
procedure. Then add the following to the bottom of the
procedure.
'check for delivery or pickup
If optDelivery.Value = True Then
strDeliveryMethod = "Delivery"
Else
strDeliveryMethod = "Pickup"
End If
63

Message Boxes Revisited


There are different parameters you
can use with Message Boxes.
See the Help for a complete list.
We are going to ask the user to
click Yes or No to confirm the
order. We want their response to
be stored so we can act upon it.
If it is yes, the form should print
and clear. If no, the message box
should simply disappear and
allow the user to make the
required changes.

64

Message Box String


The following code will output a message box with
the appropriate strings and the Yes/No buttons.
35. First, declare a variable in the declaration section
of the procedure.
Dim intOrderCorrect as Integer holds
yes/no response from user
65

Msgbox()

intOrderCorrect = MsgBox("Order for " & txtName &


vbCrLf _
& strSize & "Pizza for " & strDeliveryMethod &
" with" _ & vbCrLf & strToppings & vbCrLf &
vbCrLf & _
"Total = " & Format(curTotal, "currency") & _
vbCrLf & vbCrLf & _
"Is this order correct?", vbYesNo, "Verify
Order")
_
at the end of a line means that _
the code is continued _
on the next line even though _
the statement is not finished.
66

vbYes, vbNo
If the order is correct, print the form and clear
it (the same as Canceling).
If intOrderCorrect = vbYes Then
Me.PrintForm
Call cmdCancel_Click
End if
If the order is not correct, do nothing to the
program.
67

Program Complete!

68

Conclusion
Thank you for attending this workshop.
Available on-line in zipped format is:

This presentation
Hello World program source
Pizza source
Source for the simple programs included in your package

Visit www.lvp.com to order a copy of an excellent S2,S3 textbook.


Visit http://www.edu.gov.mb.ca/ks4/cur/cs/index.html for the new
Computer Science Framework

69

Potrebbero piacerti anche