Programming with Microsoft Visual Basic 2010 5th Edition Chapter Three Using Variables and Constants Previewing the Modified Playtime Cellular Application Previewing the Playtime Cellular application Access Run command on Start menu Browse to VB2010\Chap03 folder Click the Playtime Cellular (Playtime Cellular.exe) file View order form Enter customer information from pages 119-120 Completed application resembles Chapter 2 version 2 Figure 3-2 Completed order form 3 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 4 Lesson A Objectives (cont’d.) Explain the scope and lifetime of variables and named constants Explain the purpose of the Option Explicit, Option Infer, and Option Strict 5 Using Variables to Store Information Controls and variables temporarily store data Variable: Temporary storage location in main memory Specified by data type, name, scope, and lifetime Reasons to use variables Hold information that is not stored in control on form Allow for more precise treatment of numeric data Enable code to run more efficiently 6 Using Variables to Store Information (cont’d.) Selecting a data type for a variable Data type: Specifies type of data a variable can store Provides a class template for creating variables Unicode Universal coding scheme for characters Assigns unique numeric value to each character in the written languages of the world 7 Figure 3-3 Basic data types in Visual Basic 8 Using Variables to Store Information (cont’d.) For this course: Use Integer data type for all integers Use either Decimal or Double data type for numbers containing decimal places or numbers used in calculations Use String data type for text or numbers not used in calculations Use Boolean data type for Boolean values 9 Using Variables to Store Information (cont’d.) Selecting a name for a variable Variables are referred to by name Identifier: Another term for variable name Guidelines for naming variables Use Hungarian notation, with a three-character prefix representing the variable’s data type Name should be descriptive: e.g., dblLength Use camel case: e.g., dblSalesAmount Must follow variable naming rules 10 Figure 3-4 Variable naming rules and examples 11 Using Variables to Store Information (cont’d.) Declaring a variable Declaration statement: Used to declare (create) a variable and reserve space in memory for it Syntax shown in Figure 3-5 on next slide If no initial value is given to variable when declaring it, computer stores 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 12 Figure 3-5 Syntax and examples of a variable declaration statement 13 Assigning Data to an Existing Variable Assignment statement: Assigns value to variable at run time Syntax: variablename = expression Expression may include literal constants, object properties, variables, keywords, arithmetic operators Literal constant Data item whose value does not change Example: The string “Mary” Literal type character Forces literal constant to change data type 14 Figure 3-6 Assignment statements in which the value’s data type matches the variable’s data type 15 Assigning Data to an Existing Variable (cont’d.) TryParse method: Converts string to number TryParse is preferred over Val Allows programmer to specify data type Val only returns a type Double value Syntax shown in Figure 3-7 on next slide dataType: Numeric data type, such as Integer string : String to be converted variable : Variable that receives the numeric value 16 Figure 3-7 Basic syntax and examples of the TryParse method 17 Assigning Data to an Existing Variable (cont’d.) Convert class: Can be used to convert a number from one type to another Syntax shown in Figure 3-9 on next slide – Convert: Name of class – method: Converts value to specified data type – value: Numeric data to be converted TryParse is recommended for converting strings to numeric data types Will not produce an error if conversion fails 18 Figure 3-9 Syntax and examples of the Convert class methods 19 The Scope and Lifetime of a Variable Scope: Indicates where variable can be used Lifetime: How long variable remains in memory Scope and lifetime are determined by where variable is declared Three types of scope Class: Variable can be used by all procedures in a form Procedure: Variable can be used within procedure Block: Variable can be used within specific code block 20 The Scope and Lifetime of a Variable (cont’d.) Variables with procedure scope Can be used only by that procedure Declared at beginning of procedure Removed from memory when procedure ends Declared using Dim keyword Most variables used in this course will be procedure-level variables Sales tax example UI and code given on following slides illustrate use of procedure variables 21 The Scope and Lifetime of a Variable (cont’d.) Figure 3-10 User interface for the Sales Tax Calculator application 22 Figure 3-11 Click event procedures using procedure-level variables 23 The Scope and Lifetime of a Variable (cont’d.) Variables with class scope Can be used by all procedures in a form Declared in form’s Declarations section Remain in memory until application ends Declared using Private keyword Total Sales example UI and code given on following slides illustrate use of class-level variables 24 The Scope and Lifetime of a Variable (cont’d.) Figure 3-12 User interface for the Total Sales application 25 Figure 3-13 Code using a class-level variable 26 Static Variables Static variable: Procedure-level variable with extended lifetime Remains in memory between procedure calls Retains its value even when the procedure ends Static keyword: Used to declare static variable Static variables act like class-level variables but have narrower scope Can only be used within procedure where declared 27 Figure 3-14 Code using a static variable 28 Named Constants Named constant Memory location inside computer whose contents cannot be changed at run time Const statement: Creates named constant Stores value of expression in named constant expression: Can be literal constant, another named constant, or an arithmetic operator Cannot contain a variable or method Syntax and examples shown in Figure 3-15 on next slide 29 Figure 3-15 Syntax and examples of the Const statement 30 Figure 3-16 User interface for the Area Calculator application Figure 3-17 Calculate Area button’s Click event procedure 31 Option Explicit, Option Infer, and Option Strict Option Explicit On statement Prevents you from using undeclared variables Implicit type conversion: Converts right-side value to the data type of left side Promotion Data converted to greater precision number e.g., Integer to Decimal Demotion Data truncated e.g., Decimal to Integer Data loss can occur when demotion occurs 32 Option Explicit, Option Infer, and Option Strict (cont’d.) Option Infer Off statement: Ensures that every variable is declared with a data type Option Strict On statement: Disallows implicit conversions Type conversion rules are applied when this option is on Figure 3-18 on following slide contains examples 33 Figure 3-18 Rules and examples of type conversions 34 Option Explicit, Option Infer, and Option Strict (cont’d.) Figure 3-19 Option statements entered in the General Declarations section 35 Lesson A Summary Declare a variable using {Dim | Private | Static} Assignment statement: Assigns value to a variable Three levels of scope: Block, procedure, class TryParse () 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 36 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 37 Modifying the Playtime Cellular Application Modifications needed: Calculate and display the sales tax Display salesperson name Revise the TOE chart to reflect the new tasks Must modify btnCalc button’s Click event and the form’s Load event 38 Figure 3-20 Revised TOE chart for the Playtime Cellular application 39 Modifying the Calculate Order Button’s Code General strategy Remove existing code from Click event procedure Recode the procedure using variables in equations Use Option Explicit On statement Enforces full variable declaration Use Option Infer Off statement Enforces that variables are declared with data types Use Option Strict On statement Suppresses implicit type conversions 40 Figure 3-22 Jagged blue lines indicate errors in the statements Figure 3-23 Lines to delete from the procedure 41 Modifying the Calculate Order Button’s Code (cont’d.) Figure 3-24 Revised pseudocode for the btnCalc control’s Click event procedure 42 Modifying the Calculate Order Button’s Code (cont’d.) Figure 3-25 List of named constants and variables 43 Modifying the Calculate Order Button’s Code (cont’d.) Figure 3-26 Const and Dim statements entered in the procedure 44 Figure 3-27 Code entered in the btnCalc control’s Click event procedure 45 Concatenating Strings Concatenate: Connect strings together Concatenation operator: Ampersand (&) Include space before and after & operator Numeric values used with the & operator are converted to strings 46 Concatenating Strings (cont’d.) Figure 3-29 Examples of string concatenation 47 The InputBox Function InputBox function Displays dialog box and retrieves user input Arguments prompt: Message to display inside dialog box title: Text to display in the dialog box’s title bar defaultResponse: Text to be displayed in the input field Returned value most often assigned to String variable Syntax shown in Figure 3-33 on next slide 48 Figure 3-33 Basic syntax and examples of the InputBox function 49 The ControlChars.Newline Constant ControlChars.NewLine constant Advances the insertion point to the next line in a control Also used to advance insertion point in file or on printer To use, type ControlChars.NewLine at appropriate location Can be used with string concatenation Line continuation character (_) Used to break up long line of code into two or more lines 50 The ControlChars.Newline Constant (cont’d.) Figure 3-37 Modified assignment statement 51 Designating a Default Button Default button Button that is activated by pressing Enter key Button is not required to have the focus Only one per form Default button should be button used most often by the user Except if button’s task is destructive and irreversible, such as deleting data Set form’s AcceptButton property to button name 52 Using the ToString Method to Format Numbers Formatting: Specifying decimal places and special characters to display ToString method is replacing Format function Syntax: variablename.ToString(formatString) variablename: Name of a numeric variable formatString: String specifying format you want to use format String has form of Axx specifying a format and precision specifier 53 Figure 3-40 Syntax and examples of the ToString method 54 Lesson B Summary Concatenation operator (&) Used to link strings InputBox function Displays interactive dialog box Use ControlChars.NewLine to move insertion point to a new line Set default button in form’s AcceptButton property ToString method Formats number for string output 55 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 56 Modifying the Load and Click Event Procedures Capability needed when each order is calculated Order form should ask for the salesperson’s name Revise TOE chart before implementing changes Shift task of retrieving name to btnCalc’s Click event Use static variable for the salesperson’s name 57 Figure 3-45 Revised TOE chart 58 Modifying the Load and Click Event Procedures (cont’d.) Figure 3-46 Revised Pseudocode for the Calculate Order button 59 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 Code assigns data to the control’s Text property Example: A change is made to the number of items ordered 60 Coding the TextChanged Event Procedure (cont’d.) Associating a procedure with different objects and events Handles clause Appears in an event procedure’s header Indicates object and event associated with procedure Can associate an event procedure with more than one object and/or event In Handles section of procedure header, list each object and event, separated by commas 61 Coding the TextChanged Event Procedure (cont’d.) Figure 3-48 Completed ClearLabels procedure 62 Figure 3-49 Playtime Cellular application’s code at the end of Lesson C (continues) 63 Figure 3-49 Playtime Cellular application’s code at the end of Lesson C (cont’d.) 64 Lesson C Summary TextChanged event procedure responds to change in value of control’s Text Property Handles clause Determines which objects and events are associated with the event procedure To create procedure for more than one object or event: List each object and event after Handles keyword 65