Declare a module request list
REQUEST <name1> [,<nameN>]
<idModule list> is the list of modules that will be linked into the current executable (.EXE) file.
REQUEST is a declaration statement that defines a list of module identifiers to the linker. Like all other declaration statements, a REQUEST statement must be specified before any executable statements in either the program file, or a procedure or user-defined function definition.
During the compilation of Clipper source code, all explicit references to procedures and user-defined functions are made to the linker. In some instances, within a source file, there may be no references made to procedure or user-defined function names until runtime. REQUEST resolves this situation by forcing the named procedures or user-defined functions to be linked even if they are not explicitly referenced in the source file. This is important in several instances:
. Procedures, user-defined functions, or formats referenced with macro expressions or variables
. Procedures and user-defined functions used in REPORT and LABEL FORMs and not referenced in the source code
. User-defined functions used in index keys and not referenced in the source code
. ACHOICE(), DBEDIT(), or MEMOEDIT() user functions
. Initialization procedures declared with the INIT PROCEDURE statement
. Exit procedures declared with the EXIT PROCEDURE statement
To group common REQUESTs together, place them in a header file and then include (#include) the header file into each program file (.prg) that might indirectly use them.
. This example shows a typical header file consisting of common REQUESTs for REPORT FORMs: // Request.ch REQUEST HARDCR REQUEST TONE REQUEST MEMOTRAN REQUEST STRTRAN OR : REQUEST HARDCR, TONE, MEMOTRAN, STRTRAN
ACHOICE(), ANNOUNCE, DBEDIT(), EXIT, PROCEDURE; EXTERNAL*