functions, procedures, events

Post on 11-Jan-2016

35 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

Functions, Procedures, Events. Chapter 6. Overview. Subroutines Sub-procedures Invoked sub-procedures Functions Scope Parameters The object model Properties Methods Events Event-handling procedures Testing Format function. Sub-procedures & Functions. - PowerPoint PPT Presentation

TRANSCRIPT

Functions, Procedures, Events

Chapter 6

Overview Subroutines

Sub-procedures Invoked sub-procedures

Functions Scope Parameters

The object model Properties Methods Events

Event-handling procedures Testing Format function

Sub-procedures & Functions

Sub-procedures and functions are ways of writing code once, but using in many different places Calculate the square root of a number Display the updated totals in a cash register program

How do functions & sub-procedures differ in VB? functions return values, sub-procedures do not

Sub-procedures & functions require a name may have local variables may require arguments

Sub-procedures

All of our button pushing “events” invoke sub-procedures that are executed when the event occurs

There are some things, however, that we want to do as part of several different event handlers

To do this we can write sub-procedures that are not connected with specific events, but can be called anywhere within a program This code re-use can simplify the writing and debugging of an

VB application

Using sub-procedures

The format for sub-procedure declaration is

Private Sub <Name> ( <Para1> as <Type1>, …)

The parentheses surround the procedure’s parameter list One of the most useful aspects of procedures is that they

can be used given different inputs each time they are called

Using Sub-procedures

The format for procedure invocation is

<Name> <Arg1>, <Arg2>, …

When a procedure is invoked, each parameter is matched with the corresponding argument the parameter is used a a place holder for the particular

argument passed to the sub-procedure Changes to the parameter are reflected in the argument

Advantages

Using sub-procedures … allows for efficiency in that code used by multiple

buttons can be written once permits easier debugging

An error need be fixed only once forces you to organize your thoughts allows for complicated sub-procedures to be written by

experts and then used by all

Procedure ExamplePrivate Sub DisplayPay(curShiftPremium as Currency, _

curBaseRate as Currency, _ intBillableHours as Integer, _

intUnbilledHours as Integer, _ dblPrem as Double) Dim curHourlyRate as Currency Dim intHrsWorked as Intger curHourlyRate = (curShiftPremium + curBaseRate)*dblPrem intHrsWorked = intBillableHours + intUnbilledHours curTotalPay = curHrlyRate * intHrsWorked MsgBox "Total Pay is " & curTotalPayEnd Sub

Private Sub cmdGo_Click()DisplayPay curSP, curA + curB, val(txtBill), val(txtUn), dblPrEnd Sub

Functions If the main purpose of the repeated code is to calculate a

value, functions are a better choice than procedures

Private Function curPay (curHrlyRate as _Currency, curHours as Currency) as Currency…

End Function

Once declared, you can invoke new function in the same way you called the functions built into VB, like Val

curMyPay = curPay(curRate, curHrs)

Function Example

Private Function CalculatePay(curShiftPremium as Currency, _ curBaseRate as Currency, _ intBillableHours as Integer, _ intUnbilledHours as Integer, _ dblPrem as Double) as Currency Dim curHourlyRate as Currency Dim intHrsWorked as Intger curHourlyRate = (curShiftPremium + curBaseRate)*dblPrem intHrsWorked = intBillableHours + intUnbilledHours CalculatePay = curHrlyRate * intHrsWorkedEnd Function

Private Sub cmdGo_Click() lblA.Caption = _ CalculatePay (curSP, curB, val(txtBill), val(txtUn), dblPr)End Sub

Objects: Properties, Methods & Events

Each item in the toolbox defines an “object” type Objects have “properties”

Each property is, itself, either an object or data type• The .caption property of a Label is of the string data type

The values can be modified using the properties window, or in code

Objects recognize “events” Like click and load The exact events vary from object type to object type VB programmer can write code which responds to these events

Object may be acted upon by “methods” A method changes the appearance, properties, or other feature on an object

• Methods are object-local procedures

Responding to Events

When an event is detected by a VB object, VB attempts to invoke the event handling sub-procedure associated with that event You may invoke event handlers as normal sub-

procedures The name of an event handling sub-procedure must

be of the form: <control name>_<event name> For example:

cmdName_Click lblName_MouseMove

Invoking Methods

Methods are sub-procedures that are associated with a particular object

Invoking the method will change that object, but should have little other effect

Methods do not return a value Example: calling the move method of a label

Private Sub cmdMove_Click() lblMoving.Move 1, 1, 5, 2End Sub

Icons

In the illustration below “Caption” and “ClipControls” are Properties and “Circle” and “Cls” are Methods. This is the auto completion popup window that VB displays after typing the name of a Label followed by a “.”

Event Generating Control: the Timer

The timer control can be used to generate an event after a delay, or recurring events at regular intervals

In design view, when you place a timer on a form it appears as a tiny stop watch

At run-time, timer controls are always invisible

Timer: the interval property Each timer control has an Interval property that

specifies the number of milliseconds that pass between one timer event to the next Unless it is disabled, a timer continues to receive an

event at roughly equal intervals of time The Interval property has a few limitations to

consider when you're programming a timer control: The interval can be between 0 and 64,767

The longest interval is about 64.8 seconds The interval is not guaranteed to elapse exactly on

time Even though the Interval property is measured in

milliseconds, the true precision of an interval is no more than one-eighteenth of a second

Timer: the Enabled property

Enabled is a Boolean property If you want the timer to start working as

soon as the form loads, set it to True Otherwise, leave this property set to False

You might choose to have the click of a command button start operation of the timer Then you would have to assign true to the

enabled property of the timer in the buttons click event handler

Randomize and Rnd

The Randomize statement initializes VB's random number generator

The Rnd function returns random numbers in the range 0 to 1 including 0 not including 1

To use rnd to generate random integers:Int((upperbound - lowerbound + 1) * Rnd + lowerbound)

The VB Debugger

Now that we are writing slightly longer programs, it will be useful for us to examine the VB debugger The debugger is part of the VB IDE With the debugger you can

Stop your program when a certain line is reached Inspect the values stored in variables & properties Change the values stored in variables and properties

Demonstration of debugger and immediate window

Program Testing

Programs must be tested carefully in order to ensure that they work as planned Testing is not a casual thing

There is a problem with real programs, they are so complicated that it takes a very long time to understand the program, rather than the computer error

Black Box Testing

Usually done from the program specifications No knowledge of how the program actually does what it

does Often done by a separate design team

The problems that need to be solved are usually very large. The examples we use are often too simple to need the solution techniques.

Example 1: Black Box

Problem: Read two numbers, ‘a’ and ‘b’. Put the larger of the numbers into the box ‘c’. Conditions to be tested:

Example 1: Black Box both numbers positive

a larger b larger

one number positive a positive, not b b positive, not a

both numbers negative a larger (less negative)

b larger

one number zero a = 0 b = 0

both numbers equal both positive both negative both zero

other conditions...

Example 2: Black Box

Test a program that shows the name of the next day each time the “Next Day” button is clicked.

Seems to work ok.

White Box Testing

Uses details of just how the program works. Exhaustive test of each routine used. In real world cases, complete testing is just not possible. Requires a careful choice of just how testing is done.

Format Function

Format function - returns a formatted expression

Syntax: Format(expression, format)

Some of Visual Basic’s predefined formats: Currency

Fixed

Standard

Percent

Format Examples

FormatCurrency(1234) or

Format(1234, “Currency”)

$1,234.00 or 1.234,00

Format(1234, “$#,###.00”)

$1,234.00

FormatNumber(1234)

1,234.00 or 1.234,00

FormatDateTime(“20:10”,vbLongTime)

20:10:00

Named Format and Descriptions

General Number: No special formatting

Currency: Thousands separator, two digits to the right of the decimal

Fixed: At least one digit to the left and two digits to the right of the decimal

Standard: Thousands separator, at least one digit to the left and two digits to the right of the decimal

Named Format and Descriptions

Percent: Multiplies by 100 and follows number by % sign

Scientific: Standard scientific notation

Yes/No: Displays Yes for a nonzero value

True/False: Displays True for a nonzero value

On/Off: Displays On for a nonzero value

Codes for Numeric Formats 0 – Digit placeholder: Displays the digit or 0 if no digit.

9 – Digit placeholder: Displays the digit or displays nothing if no digit. (omits leading and trailing zeros)

. – Decimal separator: Indicates where the decimal point is displayed.

Codes for Numeric Formats , – Thousands separator: Indicates where the separators

are displayed.

% – Percentage indicator: Indicates where a percent sign is displayed. (number multiplied by 100)

E-,E+ - Scientific notation: With E- a minus sign is displayed next to negative exponents, no sign for positive.

Named Date and Time Formats General Date: Displays date and time if

expression contains both.

Long Date: Displays the day of the week, the day of the month, the month and the year.

Medium Date: Displays the day of the month, a three-letter abbreviation for the month and the year.

Short Date: Displays the day, month, the month and year.

Named Date and Time Formats Long Time: Displays hours, minutes, and

seconds along with the AM/PM indicator.

Medium Time: Displays hours and minutes along with the AM/PM indicator.

Short Time: Displays hours and minutes in military time

top related