Title: Scope of Variables and Constants A Variable or Constant may exist and be Visible for an entire project, for only one form, or for only one procedure Therefore, the visibility of a variable or constant is referred to as its Scope Visibility means that
1Scope of Variables and ConstantsA Variable or
Constant may exist and be Visible for an entire
project, for only one form, or for only one
procedureTherefore, the visibility of a
variable or constant is referred to as its
ScopeVisibility means that can this variable
be seen in this locationThe scope of a
variable or constant is said to be Global, Module
(Form) Level, or Local
2Module Level variables or constants are
accessible from all procedures of a FormA Local
variable or constant may be used only within the
procedure in which it is declaredThe Scope of
a Variable declared with a DIM statement is
determined by where the declaration statement is
madeThe Lifetime of a Variable is the period of
time that the variable existsThe Lifetime of a
Local variable is normally one execution of the
procedureThe Lifetime of a Module Level variable
is the entire time the Form is Loaded (generally
the lifetime of the entire project)
3(No Transcript)
4Local Declarations
- Any variable you declare inside a procedure
- The lifetime of the variable is one execution of
the procedure - Each time you execute (e.g. click on a command
button) a procedure, the local DIM statements are
executed. - Each variable is created as a fresh new one
with an initial value of 0 for numeric datatypes
or for string - When the procedure finishes, its variables
disappear, their memory locations are released
5Local Declarations
6Module-Level Declarations
- When you need to use a variable or constant in
more than one procedure of a form - Declare at module-level
- General Declarations
7Module-Level Declarations
8Global Variables
- Though you can declare global variables anywhere,
convention dictates that public variables be
placed only in the standard code module. - Examples of global and module level declarations
in a SCM - Public gcurTotalSalary as Currency 'global
variable - Public Const gcurTAX_RATE as Single .082
'global constant - Dim mcurMySalary as Currecy 'module-only variable
- If a procedure were to contain a variable
declared locally whose name is the same as a
global variable (a violation of unwritten
convention for variable naming), then the local
variable takes precedence. A local variable, when
in scope, always preempts use of a global
variable. - The Private statement is rarely used, because
that is the default (for Dim)
9Static Variables
- Static variables are local to a procedure but
retain their value for the life of a project.
They are often used inside a procedure that
counts things and must maintain that count.
Static variables are initialized once only.
Thereafter they are not initialized during the
project - Private Sub Something()
- Static intCount as Integer 'initialized
to 0 once - intCount intCount 1 'remembered across
invocations -
- End Sub
10Standard Code Modules
- Public procedures arevisible to all forms
- Public variables are visible to all forms
- SCM has the extension .BAS
- Create SCM Project, Add Module
- DIM variables in the code module are visible to
all procedures in the module, but not to
procedures in the form modules. - SCM modules do not have any event procedures
because SCM has no events to which it can react.
The SCM only has code and procedures.
11Identifiers
- When you use variables and constants, it is
important that you know their scope. Good
programming practice to include scope information
in naming conventions - Use m as a prefix to identify module-level
declarations - Use g to identify variables with global scope
12Multi-Form ProjectsWorking with more than one
form in a projectThe first form that VB
displays is called the STARTUP FORMTo add
another form Project Menu/Add Form or select the
icon from the shortcut toolbarThis form will be
added to the project, and cam be viewed from the
Project Explorer Window
13Each form is a separate entity, and the code
exists and is related only to the specific
formTo move between each formFORMNAME.SHOWFO
RMNAME.HIDEForm style can be 1 (modal) or the
default value 0 (nonmodal)
14Variables Constants in Multi-form Projects
- Scope of variables
- Local available inside a procedure
- Static inside procedure, but remembered
- Module level available anywhere in a form
- Global available across forms--anywhere
- Global variables declared with Public
- Variable prefix naming conventions m for module,
g for global - Scope a variable as narrowly as possible
15Referring to Other Forms Objects
- You can refer to txtName in another form called
frmSummary this way - frmSummary!txtName
- or frmSummary!txtName.Font.Name ...
- This implies that control names are unique within
a form but need not be unique across forms.
16An About Box
- Acts like a Windows HelpAbout box
- Often displays information about the programmers,
designers, and so on - An about box is simply a modal form with an OK
button and label boxes displaying information - You can use VBs About Dialog template
17A Splash Screen
- Splash screen displays while product loads
- Create Project, Add Form, then select Splash
Screen - Splash screen loads first instead of main form
- Place splash screen load statement in Sub Main
procedure in Standard Code Module