Directives
PROGRAM Create or Assign Program File
 
Format 1. Create Program File: PROGRAM filename$[,prog_size][,ERR=stmtref]
 
2. Assign Default Program (OOP): PROGRAM "interface_prog"
 
Where:
interface_prog
Name of default program that contains object logic. filename$
Ignored. Size of a program which can be contained in the file.
Numeric expression.
 
stmtref Program line number or statement label to which to transfer control.
 
Description The PROGRAM directive can be used to create a program file or it can be used in Object Oriented Programming (OOP) to define a default program name intended to service an object.
 
Format 1 Create Program File
 
PROGRAM filename$[,prog_size][,ERR=stmtref]
This format of the PROGRAM directive to create a ProvideX program file. The file size is for documentation purposes only and is ignored by the system;e.g.,
 
0010 PROGRAM "CSTUPD",1024,ERR=1200
Program files have a special header format indicating that the file contains ProvideX object code. Program files should only be used with the SAVE or LOAD commands. Any attempt to use READ or WRITE directives with this type of file can yield unpredictable results when the program file is subsequently loaded.
If a given filename already exists, ProvideX returns an Error #12: File does not exist (or already exists).


*Note* As of Version 4.20, WindX supports the use of this directive via the [WDX] tag; e.g., PROGRAM "[WDX]somefile.ext"... If you are running an earlier version of ProvideX on a WindX PC, you still need to encapsulate the command in an EXECUTE


"[WDX]..." directive. See [WDX] Direct Action to Client Machine.
 
Format 2 Assign Default Program in Object Oriented Programming
 
PROGRAM "interface_prog"
 
In Object Oriented Programming, the PROGRAM directive is used to define the default program name that is going to service an object. This can be used to override the program that contains the DEF CLASS.
 
If this clause is specified for an object class:
• Whenever an object is created, the system will attempt to call the specified program at the label ON_CREATE.
• Whenever an object of this class is deleted, the system will attempt to call the specified program at the label ON_DELETE.
 
No error is reported if the label does not exist.
In addition, any references to program logic in a property read/write or a method definition can contain a leading semi-colon. For example, the following class definitions are effectively the same:
 
PROGRAM "Cust"
FUNCTION Find(X$) ";LookupByName"
 
Refer to the following functions and directives for related information on Object
Oriented Programming:
 
Object Oriented Programming
DEF CLASS Define Object Class
DROP CLASS Delete Class Definition
DROP OBJECT Delete Object
FUNCTION Declare Object Method
LIKE Inherit Properties
LOAD CLASS Pre-Load Class Definition
LOCAL Designation of Local Data
PROPERTY Declare Object Properties
RENAME CLASS Change Name of Class
STATIC Add Local Properties at Runtime
NEW( ) Function
REF( ) Function