Purpose |
Declare global (shared) variables between Subs and Functions. |
Syntax |
GLOBAL variable[()] [ AS type] [, variable[()]] [, ...] GLOBAL variable[()] [, variable[()]] [, ...] AS type |
Remarks |
GLOBAL declares the specified variable(s) as global to the entire program. This gives a Sub or Function access to variable(s), without having to pass them as parameters. To declare an array as a global variable, use an empty set of parentheses in the variable list: GLOBAL MyArray%() GLOBAL StringArray() AS STRING You must then use the DIM or REDIM statements to dimension the array inside a Sub or Function. A good place to do this is inside your WINMAIN or PBMAIN function. If an array is defined as GLOBAL outside a Sub or Function, you should include the GLOBAL keyword in the DIM statement for clarity, and compatibility with future versions of PowerBASIC: GLOBAL a() AS STRING FUNCTION PBMAIN DIM a(1 TO 500) AS GLOBAL STRING ... END FUNCTION The GLOBAL statement may accept a list of variables, all of which are defined by the type descriptor keywords which follow them. For example: GLOBAL aaa, bbb, ccc AS INTEGER GLOBAL vptr, aptr() AS LONG PTR |
Restrictions |
GLOBAL variables are not shared between programs
and DLLs or between multiple instances
of the same DLL. That is, a GLOBAL variable is only global within
its own module. The simplest way to expose a variable to a DLL is
to pass the variable
|
See also |
|
Example |
#COMPILE EXE GLOBAL Caption AS ASCIIZ * 255
FUNCTION PBMAIN() AS LONG DIM Msg AS ASCIIZ * 255 CALL SetVars IF Caption = "GLOBAL test" then Msg = "Success!" END FUNCTION
SUB SetVars() Caption = "GLOBAL test" END SUB |