Procedure

advertisement
Chapter 7: Sub and Function
Procedures
Programming with Microsoft Visual Basic
2005, Third Edition
Creating Sub and Function
Procedures
Lesson A Objectives
• Explain the difference between a Sub procedure
and a Function procedure
• Create a procedure that receives information
passed to it
• Explain the difference between passing data by
value and passing data by reference
• Create a Function procedure
Programming with Microsoft Visual Basic 2005, Third Edition
2
Previewing the Completed
Application
•
•
•
•
Go to Run command on Windows Start menu
Browse to the VB2005\Chap07 folder
Open the Harvey Industries.exe file
The Harvey Industries user interface appears
Programming with Microsoft Visual Basic 2005, Third Edition
3
Previewing the Completed
Application (continued)
Figure 7-1: Payroll amounts shown in the user interface
Programming with Microsoft Visual Basic 2005, Third Edition
4
Procedures
• Procedure
– Block of program code that performs a specific task
• Two types of procedures in Visual Basic
– Sub procedure: does not return a value
– Function procedure: does return a value
Programming with Microsoft Visual Basic 2005, Third Edition
5
Sub Procedures
• Event procedure
– Associated with a specific object and event
– Called by Visual Basic in response to an event
• Independent procedure
– Independent of any object and event
– Invoked from code using a Call statement
• Parameter: data passed to procedure at call time
Programming with Microsoft Visual Basic 2005, Third Edition
6
Passing Information to an
Independent Sub Procedure
• Call syntax: Call procedurename([argumentlist])
– argumentlist: used to pass information (optional)
• Argument: data item in an argumentlist
• Parameter: data item in a parameterlist
• Relationship between arguments and parameters
– Should agree in number, position, and data type
• Types of arguments passed to a procedure
– Variable, literal constant, named constant, keyword
Programming with Microsoft Visual Basic 2005, Third Edition
7
Passing Variables
• Variables specified by name, address, and value
• Passing by value
– Passes a copy of the data stored in a variable
• Passing by reference
– Passes the memory address of a variable
– Allows a procedure to change contents of variable
Programming with Microsoft Visual Basic 2005, Third Edition
8
Passing by Value
• Copy of data, not variable address, is passed
• How to pass by value
– Include the keyword ByVal before a parameter
• Reasons to pass by value
– Procedure needs to know contents of variable
– Procedure does not need to change original value
• By default, Visual Basic passes by value
Programming with Microsoft Visual Basic 2005, Third Edition
9
Passing By Value (continued)
Figure 7-4: Code for the Pet Information application (continued)
Programming with Microsoft Visual Basic 2005, Third Edition
10
Passing By Value (continued)
Figure 7-4: Code for the Pet Information application
Programming with Microsoft Visual Basic 2005, Third Edition
11
Passing By Reference
• Variable address (memory location) is passed
• Receiving procedure can access variable
• Reason to pass by reference
– Procedure needs to change a variable’s contents
• How to pass by reference
– Include keyword ByRef before a parameter
Programming with Microsoft Visual Basic 2005, Third Edition
12
Passing By Reference (continued)
Figure 7-8: Code for the Gross Pay application (continued)
Programming with Microsoft Visual Basic 2005, Third Edition
13
Passing By Reference (continued)
Figure 7-8: Code for the Gross Pay application (continued)
Programming with Microsoft Visual Basic 2005, Third Edition
14
Passing By Reference (continued)
Figure 7-8: Code for the Gross Pay application
Programming with Microsoft Visual Basic 2005, Third Edition
15
Function Procedures
• Function procedure
– A block of code that performs a specific task
– Returns a value after completing task
• Examples of built-in functions: Val and InputBox
• Create your own functions using syntax template
– As datatype in header indicates return type of data
– Return expression type must agree with As datatype
Programming with Microsoft Visual Basic 2005, Third Edition
16
Function Procedures (continued)
Figure 7-11: Syntax and an example of a Function procedure
Programming with Microsoft Visual Basic 2005, Third Edition
17
The Pine Lodge Application
• Objective: calculate employee’s new pay
• Application uses a function to calculate new pay
• Function requirements
– Input: employee’s current hourly pay and raise rate
– Process: calculate raise and then add to current pay
– Output: return new pay to calling procedure
Programming with Microsoft Visual Basic 2005, Third Edition
18
The Pine Lodge Application
(continued)
Figure 7-12: Sample run of the Pine Lodge application
Programming with Microsoft Visual Basic 2005, Third Edition
19
Summary – Lesson A
• Two types of procedures: event and independent
• Function: performs a task and returns a value
• Independent procedures and functions are called
from the application’s code
• Pass by value: send a copy of variable contents
to a procedure or function
• Pass by reference: send a variable address to a
procedure or function
Programming with Microsoft Visual Basic 2005, Third Edition
20
Coding The Harvey Industries Payroll
Application
Lesson B Objectives
•
•
•
•
Add a combo box to a form
Add items to a combo box
Sort the contents of a combo box
Select a combo box item from code
Programming with Microsoft Visual Basic 2005, Third Edition
21
Coding The Harvey Industries Payroll
Application
Lesson B Objectives (continued)
• Determine the current item in a combo box
• Round a number
• Code a combo box’s TextChanged event procedure
Programming with Microsoft Visual Basic 2005, Third Edition
22
Harvey Industries
• Objective: calculate and display pay information
• Components of employee pay
–
–
–
–
–
Employee’s weekly gross pay
Social Security tax
Medicare (FICA) tax
Federal withholding tax (FWT)
Net pay
• Input: name, marital status, hours, rate, allowances
Programming with Microsoft Visual Basic 2005, Third Edition
23
Harvey Industries (continued)
Figure 7-15: Partially completed user interface for the
Harvey Industries application
Programming with Microsoft Visual Basic 2005, Third Edition
24
Including a Combo Box in an
Interface
• Combo box
– Allows user to select from a number of choices
– Allows user to type an entry not on list
– Can save a space on a form
• List box does not share features two and three
• DropDownStyle property
– Values: Simple, DropDown (default), DropDownList
Programming with Microsoft Visual Basic 2005, Third Edition
25
Including a Combo Box in an
Interface (continued)
Figure 7-16: Examples of the combo box styles
Programming with Microsoft Visual Basic 2005, Third Edition
26
Including a Combo Box in an
Interface (continued)
• Change in item value causes TextChanged event
• Use Item collection’s Add method to add an item
• Other properties of a combo box
–
–
–
–
Sorted: sorts items in dictionary order
SelectedIndex: used to select an item in list portion
SelectedItem: determines which item is selected
Text: used to get or set a value in text portion
Programming with Microsoft Visual Basic 2005, Third Edition
27
Including a Combo Box in an
Interface (continued)
Figure 7-17: Code corresponding to the combo
boxes shown in Figure 7-16
Programming with Microsoft Visual Basic 2005, Third Edition
28
Coding the xCalcButton’s Click Event
Procedure
• Review pay components to calculate and display:
–
–
–
–
Gross pay
FWT (federal withholding tax)
FICA tax
Net pay
• Procedure will call the GetFwt function
Programming with Microsoft Visual Basic 2005, Third Edition
29
Coding the xCalcButton’s Click Event
Procedure (continued)
Figure 7-22: Pseudocode for the xCalcButton’s
Click event procedure
Programming with Microsoft Visual Basic 2005, Third Edition
30
Coding the GetFwt Function
• How to calculate weekly taxable wages
– Multiply number of withholding allowances by $63.46
– Subtract result in first step from weekly wages
• Determining federal withholding tax (FWT)
– Evaluate weekly taxable wages and filing status
– Use data to look up FWT in special FWT tables
• GetFwt function emulates FWT table lookup
Programming with Microsoft Visual Basic 2005, Third Edition
31
Coding the GetFwt Function
(continued)
Figure 7-25: Weekly FWT tables (Single person)
Programming with Microsoft Visual Basic 2005, Third Edition
32
Coding the GetFwt Function
(continued)
Figure 7-30: FWT calculations for Single taxpayers
Programming with Microsoft Visual Basic 2005, Third Edition
33
Completing the xCalcButton’s Click
Event Procedure
• Call GetFwt function from Click event procedure
• Three values passed to GetFwt
– status variable contents
– allowances variable contents
– gross variable contents
• Value returned by GetFwt assigned to fwt variable
• Use Math.Round function to round three values
– Gross pay, FWT, and FICA tax amounts
Programming with Microsoft Visual Basic 2005, Third Edition
34
Completing the xCalcButton’s Click
Event Procedure (continued)
Figure 7-34: Payroll calculations displayed in the interface
Programming with Microsoft Visual Basic 2005, Third Edition
35
Summary – Lesson B
• Combo box displays a list of items for selection
• Combo box allows user to type entry not on list
• Specify style of combo box using DropDownStyle
property
• Use Items collection’s Add method to add items to
a Combo box
• Math.Round function rounds off values to arbitrary
number of decimal places
Programming with Microsoft Visual Basic 2005, Third Edition
36
Completing the Harvey Industries
Payroll Application
Lesson C Objectives
• Prevent a form from closing
Programming with Microsoft Visual Basic 2005, Third Edition
37
Coding The MainForm’s
FormClosing Event Procedure
• FormClosing event
– Occurs when a form is about to be closed
• Two ways to cause a FormClosing event
– Computer processes the Me.Close() statement
– User clicks the Close button on the form’s title bar
• Requirement for FormClosing event procedure
– Verifying that user wants to close the application
– Taking appropriate action based on user’s response
Programming with Microsoft Visual Basic 2005, Third Edition
38
Coding The MainForm’s
FormClosing Event Procedure
(continued)
Figure 7-35: Pseudocode for the MainForm’s
FormClosing event procedure
Programming with Microsoft Visual Basic 2005, Third Edition
39
Coding The MainForm’s
FormClosing Event Procedure
(continued)
Figure 7-36: Message box displayed by the
FormClosing event procedure
Programming with Microsoft Visual Basic 2005, Third Edition
40
Summary – Lesson C
• FormClosing event occurs when Me.Close () is
called
• FormClosing event also occurs when Close button
is clicked
• Form’s FormClosing event procedure is processed
before a form is about to close
Programming with Microsoft Visual Basic 2005, Third Edition
41
Download