PROGRAM (declare a program)

Top  Previous  Next

 

PROGRAM

MAP

Prototypes

. [MODULE( )

Prototypes

END ]

END

global data

CODE

Statements

[RETURN]

Procedures

In Clarion#, you can add a default access modifier to the PROGRAM statement:

 

PROGRAM[, PUBLIC|,INTERNAL]

 

All declarations without explicit access modifier will have the default access modifier. The default for PROGRAM is PUBLIC.

 

PROGRAM

The first declaration in a Clarion program source module. Required.

MAP

Global procedure declarations. Required.

MODULE

Declare member source modules.

prototypes

PROCEDURE declarations.

global data

Declare Global data which may be referenced by all procedures.

CODE

Terminate the data declaration section and begin the executable code section of the PROGRAM.

statements

Executable program instructions.

RETURN

Terminate program execution. Return to operating system control.

procedures

Source code for the procedures in the PROGRAM module.

The PROGRAM statement is required to be the first declaration in a Clarion program source module. It may only be preceded by source code comments. The PROGRAM source file name is used as the object (.OBJ) and executable (.EXE) file name, when compiled. The PROGRAM statement may have a label, but the label is ignored by the compiler.

A PROGRAM with PROCEDUREs must have a MAP structure. The MAP declares the PROCEDURE prototypes. Any PROCEDURE contained in a separate source file must be declared in a MODULE structure within the MAP.

Data declared in the PROGRAM module, between the keywords PROGRAM and CODE, is Global data that may be accessed by any PROCEDURE in the PROGRAM. Its memory allocation is Static.

Example:

PROGRAM                !Sample program declaration

 INCLUDE('EQUATES.CLW') !Include standard equates

 MAP

CalcTemp    PROCEDURE    !Procedure Prototype

 END

CODE

CalcTemp                !Call procedure

 

CalcTemp   PROCEDURE

Fahrenheit  REAL(0)      !Global data declarations

Centigrade  REAL(0)

Window WINDOW('Temperature Conversion'),CENTER,SYSTEM

    STRING('Enter Fahrenheit Temperature: '),AT(34,50,101,10)

    ENTRY(@N-04),AT(138,49,60,12),USE(Fahrenheit)

    STRING('Centigrade Temperature:'),AT(34,71,80,10),LEFT

    ENTRY(@N-04),AT(138,70,60,12),USE(Centigrade),SKIP

    BUTTON('Another'),AT(34,92,32,16),USE(?Another)

    BUTTON('Exit'),AT(138,92,32,16),USE(?Exit)

      END

 

CODE                         !Begin executable code section

OPEN(Window)

ACCEPT

 CASE ACCEPTED()

 OF ?Fahrenheit

  Centigrade = (Fahrenheit - 32) / 1.8

  DISPLAY(?Centigrade)

 OF ?Another

  Fahrenheit = 0

  Centigrade = 0

   DISPLAY

  SELECT(?Fahrenheit)

 OF ?Exit

  BREAK

 END

END

CLOSE(Window)

RETURN

 

See Also:

MAP

MODULE

PROCEDURE

PUBLIC

INTERNAL

Data Declarations and Memory Allocation