Programming with Microsoft Visual Basic 2012
Chapter 3: Using Variables and Constants
Previewing the Modified Play It Again Movies Application
• Play It Again Movies application– New screen for salesclerk’s name– Sales tax added to order
Programming with Microsoft Visual Basic 2012 2
Figure 3-2 Completed sales receipt
Figure 3-1 Name Entry dialog box
Lesson A Objectives
After studying Lesson A, you should be able to:• Declare variables and named constants• Assign data to an existing variable• Convert string data to a numeric data type using the
TryParse method• Convert numeric data to a different data type using the
Convert class methods• Explain the scope and lifetime of variables and named
constants• Explain the purpose of Option Explicit, Option Infer, and
Option StrictProgramming with Microsoft Visual Basic 2012 3
• Controls and variables temporarily store data• Variable
– A temporary storage location in main memory– Specified by data type, name, scope, and lifetime
• Reasons to use variables – To hold information that is not stored in a control on the
form– To allow for more precise treatment of numeric data– To enable code to run more efficiently
Programming with Microsoft Visual Basic 2012 4
Using Variables to Store Information
Using Variables to Store Information (cont.)
Programming with Microsoft Visual Basic 2012 5
Selecting a Data Type for a Variable• Data type
– Specifies the type of data a variable can store– Provides a class template for creating variables
• Unicode– A universal coding scheme for characters– Assigns a unique numeric value to each character in the
written languages of the world
Using Variables to Store Information (cont.)
Programming with Microsoft Visual Basic 2012 6
Figure 3-3 Basic data types in Visual Basic
• The textbook uses:– The Integer data type for all integers– Either the Decimal or Double data type for numbers
containing decimal places or numbers used in calculations
– The String data type for text or numbers not used in calculations
– The Boolean data type for Boolean values
Programming with Microsoft Visual Basic 2012 7
Using Variables to Store Information (cont.)
Using Variables to Store Information (cont.)
Programming with Microsoft Visual Basic 2012 8
Selecting a Name for a Variable– Names must begin
with a letter or underscore
– Names can contain only letters, numbers, or underscores• No punctuation, special characters, or spaces are allowed
– The recommended length for a name variable is 32 characters
– Variable names cannot be reserved words (such as Sub or Double)
Figure 3-4 Three-character IDs and examples
Using Variables to Store Information (cont.)
• Valid names:– intFeb_Income– decSales2014– dblEastRegion– strName
• Invalid Names:– 4thQuarter
• The name must begin with a letter or underscore– dblWest Region
• The name cannot contain a space– strFirst.Name
• The name cannot contain punctuation– decSales$East
• The name cannot contain a special character
Programming with Microsoft Visual Basic 2012 9
Using Variables to Store Information (cont.)
Declaring a Variable• Declaration statement
– Used to declare (create) a variable and reserve space in memory for it
• If no initial value is given to a variable when declaring it, the computer stores a default value– Numeric variables are set to 0– Boolean variables are set to False– Object and String variables are set to Nothing– Date variables are set to 1/1/0001 12:00:00AM
Programming with Microsoft Visual Basic 2012 10
Programming with Microsoft Visual Basic 2012 11
Using Variables to Store Information (cont.)
Figure 3-6 Syntax and examples of a variable declaration statement
Assigning Data to an Existing Variable
Programming with Microsoft Visual Basic 2012 12
• Assignment statement– Assigns a value to a variable at run time– Syntax: variablename = expression– An expression may include literal constants, object
properties, variables, keywords, and arithmetic operators• Literal constant
– A data item whose value does not change while the application is running
– Example: The string “Mary” • Literal type character
– Forces a literal constant to change its data type
Assigning Data to an Existing Variable (cont.)
Programming with Microsoft Visual Basic 2012 13
Figure 3-7 Syntax and examples of assigning a value to a variable during run time
Assigning Data to an Existing Variable (cont.)
Programming with Microsoft Visual Basic 2012 14
The TryParse Method• Converts a string to a number• Is preferred over Val
– Allows the programmer to specify the data type– Val only returns a Double number
• Arguments– dataType: A numeric data type, such as Integer– String: A string to be converted– Variable: A variable that receives the numeric value
Assigning Data to an Existing Variable (cont.)
Programming with Microsoft Visual Basic 2012 15
Figure 3-9 Basic syntax and examples of the TryParse method
Assigning Data to an Existing Variable (cont.)
Programming with Microsoft Visual Basic 2012 16
Figure 3-10 Results of the TryParse method for the Double, Decimal and Integer data types
Assigning Data to an Existing Variable (cont.)
Programming with Microsoft Visual Basic 2012 17
The Convert Class• Can be used to convert a number from one type to
another• Methods include ToDecimal, ToDouble, ToInt32, and
ToString• TryParse is recommended for converting strings to
numeric data types– Will not produce an error if the conversion fails
Assigning Data to an Existing Variable (cont.)
Programming with Microsoft Visual Basic 2012 18
Figure 3-11 Syntax and examples of the Convert class methods
The Scope and Lifetime of a Variable
Programming with Microsoft Visual Basic 2012 19
• Scope – Indicates where a variable can be used
• Lifetime – How long a variable remains in memory
• Scope and lifetime are determined by where a variable is declared: either the General Declarations section or the form’s Declaration section
• Three types of scope:– Class: The variable can be used by all procedures in a form – Procedure: The variable can be used within a procedure– Block: The variable can be used within a specific code block
The Scope and Lifetime of a Variable (cont.)
Programming with Microsoft Visual Basic 2012 20
• Variables with Procedure Scope– Can be used only by that procedure– Declared at the beginning of the procedure– Removed from memory when the procedure ends– Declared using the Dim keyword
• Most variables used in this course will be procedure-level variables
Figure 3-12 User Interface for the Discount Calculator application
The Scope and Lifetime of a Variable (cont.)
Programming with Microsoft Visual Basic 2012 21
Figure 3-13 Click event procedures using procedure-level variables
The Scope and Lifetime of a Variable (cont.)
Programming with Microsoft Visual Basic 2012 22
Figure 3-14 Code Editor window for the Discount Calculator application
The Scope and Lifetime of a Variable (cont.)
Programming with Microsoft Visual Basic 2012 23
• Variables with Class Scope– Can be used by all procedures in the form– Declared in the form’s Declarations section– Will remain in memory until the application ends– Declared using the Private keyword
Figure 3-16 User Interface for the Total Scores application
The Scope and Lifetime of a Variable (cont.)
Programming with Microsoft Visual Basic 2012 24
Figure 3-17 Total Scores application code using a class-level variable
Static Variables
Programming with Microsoft Visual Basic 2012 25
• Static variable– A procedure-level variable with an extended lifetime
• Remains in memory between procedure calls• Retains its value even when the procedure ends
– Static keyword• Used to declare a static variable
– Static variables act like class-level variables but have narrower scope • They can only be used by the procedure in which they are
declared
Static Variables (cont.)
Programming with Microsoft Visual Basic 2012 26
Figure 3-19 Total Scores application’s code using a static variable
Named Constants
Programming with Microsoft Visual Basic 2012 27
• Named constant– A memory location inside the computer whose contents
cannot be changed at run time • Const statement
– Creates named constant– Stores value of expression in a named constant– expression: Can be a literal constant, another named
constant, or an arithmetic operator– Cannot contain a variable or method
Named Constants (cont.)
Programming with Microsoft Visual Basic 2012 28
Figure 3-20 Syntax and examples of the Const statement
Named Constants (cont.)
Programming with Microsoft Visual Basic 2012 29
Figure 3-21 User interface for the Area Calculator application
Figure 3-22 Calculate Area button’s Click event procedure
Option Statements
Programming with Microsoft Visual Basic 2012 30
Option Explicit and Option Infer• Prevent you from using undeclared variables Option Strict• Implicit type conversion
– Converts the right-side value to the data type on the left side• Promotion
– Data is converted to a greater precision number (e.g., Integer to Decimal)• Demotion
– Data is truncated (e.g., Decimal to Integer)– Data loss can occur when demotion occurs
• Infer – Ensures that every variable is declared with a data type
Option Statements (cont.)
Programming with Microsoft Visual Basic 2012 31
Option Strict (cont.)– Disallows implicit conversions – Type conversion rules are applied when this option is on
Figure 3-24 Rules and examples of type conversions
Option Statements (cont.)
Programming with Microsoft Visual Basic 2012 32
Figure 3-25 Option statements entered in the General Declarations section
Programming with Microsoft Visual Basic 2012 33
Lesson A Summary
• Declare a variable using {Dim | Private | Static}• An assignment statement assigns a value to a variable• Three levels of scope: block, procedure, class• The TryParse method converts strings to numeric data• Use Const to declare a named constant• Avoid programming errors by using Option Explicit On,
Option Infer Off, and Option Strict On
Lesson B Objectives
After studying Lesson B, you should be able to:• Include procedure-level and class-level variables in an
application• Concatenate strings• Get user input using the InputBox function• Include the ControlChars.NewLine constant in code• Designate the default button for a form• Format numbers using the ToString method
Programming with Microsoft Visual Basic 2012 34
Programming with Microsoft Visual Basic 2012 35
Modifying the Play It Again Movies Application
Figure 3-26 Revised TOE chart for the Play It Again Movies application
• Modifications needed– Calculate and display
the sales tax – Display salesperson’s
name• Revise the TOE chart to
reflect the new tasks• You must modify btnCalc
button’s Click event and the form’s Load event
Modifying the Play It Again Movies Application (cont.)
Programming with Microsoft Visual Basic 2012 36
Figure 3-27 Modified user interface for the Play It Again Movies application
Programming with Microsoft Visual Basic 2012 37
Modifying the Calculate Button’s Code
• General strategy– Remove the existing code from the Click event procedure– Recode the procedure using variables in equations
• Use the Option Explicit On statement– Enforces full variable declaration
• Use the Option Infer Off statement– Ensures that variables are declared with data types
• Use the Option Strict On statement– Suppresses implicit type conversions
Modifying the Calculate Button’s Code (cont.)
Programming with Microsoft Visual Basic 2012 38
Figure 3-29 Lines to delete from the procedure
Figure 3-28 A jagged blue line indicates a syntax error
Modifying the Calculate Button’s Code (cont.)
Programming with Microsoft Visual Basic 2012 39
Figure 3-30 Revised pseudocode and flowchart for the btnCalc control’s Click event procedure
Modifying the Calculate Button’s Code (cont.)
Programming with Microsoft Visual Basic 2012 40
Figure 3-31 List of named constants and variables
Figure 3-32 Const and Dim statements entered in the procedure
Modifying the Calculate Button’s Code (cont.)
Programming with Microsoft Visual Basic 2012 41
Figure 3-33 Code entered in the btnCalc control’s Click event procedure
Figure 3-34 Calculated amounts shown in the interface
Programming with Microsoft Visual Basic 2012 42
Concatenating Strings
• Concatenate– To connect strings together
• Concatenation operator– The ampersand (&)– Include a space before and after the ampersand
• Numeric values used with the & operator are converted to strings
Figure 3-35 Examples of string concatenation
Programming with Microsoft Visual Basic 2012 43
Concatenating Strings (cont.)
Figure 3-37 Concatenated strings displayed in the lblMessage control
Figure 3-36 String concatenation included in the assignment statement
Programming with Microsoft Visual Basic 2012 44
The InputBox Function
InputBox function– Displays an input dialog box and retrieves user input
• Arguments– prompt: Contains the message to display inside the dialog
box– title: Controls the text that appears in the dialog box’s title
bar– defaultResponse: Controls the text that appears in the
input field• The returned value most often assigned to String variable• The syntax is shown in Figure 3-39 on the next slide
Programming with Microsoft Visual Basic 2012 45
The InputBox Function (cont.)
Figure 3-38 Example of an input dialog box
Figure 3-39 Basic syntax and examples of the InputBox function
Programming with Microsoft Visual Basic 2012 46
The InputBox Function (cont.)
Figure 3-41 frmMain Load event procedure
Figure 3-40 Class-level variable declared in the form’s Declarations section
Figure 3-42 Dialog box created by the InputBox function
Programming with Microsoft Visual Basic 2012 47
The ControlChars.Newline Constant
ControlChars.NewLine constant– Advances the insertion point to the next line in a control– Also used to advance the insertion point in file or on the
printer• To use, type ControlChars.NewLine in the
appropriate location– Can be used with string concatenation
• Line continuation character (_)– Used to break up a long line of code into two or more
lines
Programming with Microsoft Visual Basic 2012 48
The ControlChars.Newline Constant (cont.)
Figure 3-43 Modified assignment statement
Figure 3-45 Salesclerk’s name shown on the sales receipt
Programming with Microsoft Visual Basic 2012 49
Designating a Default Button
Default button– Activated by pressing the Enter key – Not required to have the focus– Only one per form
• The default button should be the button used most often by the user– Except if button’s task is destructive and irreversible, such
as deleting data• Set the form’s AcceptButton property to the button
name
Programming with Microsoft Visual Basic 2012 50
Using the ToString Method to Format Numbers
• Formatting– Specifying decimal places and special characters to
display• The ToString method replaces the Format function • Syntax: variablename.ToString(formatString)
– variablename: The name of a numeric variable– formatString: The string specifying the format you want
to use• formatString must take the form Axx, where A is the
format specifier and xx is the precision specifier
Programming with Microsoft Visual Basic 2012 51
Using the ToString Method to Format Numbers (Cont.)
Figure 3-46 Syntax and examples of the ToString method
Programming with Microsoft Visual Basic 2012 52
Using the ToString Method to Format Numbers (Cont.)
Figure 3-48 Play It Again Movies application’s code at the end of Lesson B (continues…)
Programming with Microsoft Visual Basic 2012 53
Using the ToString Method to Format Numbers (Cont.)
Figure 3-48 Play It Again Movies application’s code at the end of Lesson B
Programming with Microsoft Visual Basic 2012 54
Lesson B Summary
• The concatenation operator (&) is used to link strings• The InputBox function displays an interactive dialog box • Use ControlChars.NewLine to move the insertion point
to a new line • Set the default button in the form’s AcceptButton
property• The ToString method formats a number for string
output
Lesson C Objectives
After studying Lesson C, you should be able to:• Include a static variable in code• Code the TextChanged event procedure• Create a procedure that handles more than one event
Programming with Microsoft Visual Basic 2012 55
Modifying the Load and Click Event Procedures
Programming with Microsoft Visual Basic 2012 56
Figure 3-51 Revised TOE Chart for the Play It Again Movies application in Lesson C
Modifying the Load and Click Event Procedures (Cont.)
Programming with Microsoft Visual Basic 2012 57
Figure 3-52 Revised pseudocode for the Calculate button in Lesson C
Coding the TextChanged Event Procedure
• TextChanged event– Occurs when the Text property value of a control changes
• Can occur when:– The user enters data into the control– The code assigns data to the control’s Text property
• Example: A change is made to the number of items ordered
Programming with Microsoft Visual Basic 2012 58
Coding the TextChanged Event Procedure (Cont.)
Associating a Procedure with Different Objects and Events• Handles clause
– Appears in an event procedure’s header – Indicates the object and event associated with the
procedure• You can associate an event procedure with more than one
object and/or event– In the Handles section of procedure header, list each object
and event separated by commas– Procedure names are entered in Pascal case
• Capitalize the first letter in the name and the first letter of each subsequent word in the name
Programming with Microsoft Visual Basic 2012 59
Coding the TextChanged Event Procedure (cont.)
Programming with Microsoft Visual Basic 2012 60
Figure 3-53 TextChanged event procedure associated with the txtDvds control
Figure 3-54 Completed ClearLabels procedure
Programming with Microsoft Visual Basic 2012 61
Lesson C Summary
• The TextChanged event procedure responds to a change in the value of a control’s Text Property
• The Handles clause determines which objects and events are associated with the event procedure
• To create a procedure for more than one object or event, list each object and event after the Handles keyword