| 
 Purpose  | 
 Declare static variables inside a Sub, Function, Method, or Property. Static variables retain their values as long as the program is running.  | 
| 
 Syntax  | 
 STATIC variable[()] [AS type] [, variable[()]] STATIC variable[()] [, variable[()]] [, ...] AS type  | 
| 
 Remarks  | 
 The STATIC statement is valid only inside a procedure. Static variables retain their values even after the procedure ends. A static variable is local to its procedure, and can have the same name as other variables in other parts of the program without conflict. To declare an array as a static variable, use an empty set of parentheses in the variable list: You can then use the DIM statement to dimension the array. STATIC MyArray%() STATIC StringArray() AS STRING The STATIC statement may, optionally, accept a list of variables, all of which are defined by the type descriptor keyword that follows them. For example: STATIC aaa, bbb, ccc AS INTEGER STATIC vptr, aptr() AS LONG PTR  | 
| 
 Restrictions  | 
 DEFtype has no effect on variables defined by a STATIC statement.  | 
| 
 See also  | 
|
| 
 Example  | 
 #COMPILE EXE #DIM ALL #INCLUDE "WIN32API.INC" 
 DECLARE SUB DoMessage () 
 FUNCTION PBMAIN DIM z% FOR z% = 1 TO 5 DoMessage NEXT z% END FUNCTION 
 SUB DoMessage () STATIC x AS INTEGER STATIC Message() AS ASCIIZ * 256 DIM Message(1 TO 5) AS STATIC ASCIIZ * 256 
 INCR x 'add one to x Message(x) = "X =" + STR$(x) 
 #IF %DEF(%PB_CC32) PRINT Message(x) #ELSE MSGBOX Message(x) #ENDIF END SUB  |