User interface / Windows and forms in programs |
Declares a compiled form in the program.
OPEN FORM identifier FROM filename
In order to use a .42f compiled version of a form specification file, the programs must declare the form with the OPEN FORM instruction and then display the form in the current window by using the DISPLAY FORM instruction.
OPEN FORM custform FROM "customer" DISPLAY FORM custform
The form identifier does not need to match the name of the form specification files, but it must be unique among form names in the program. Its scope of reference is the entire program.
The quoted string that follows the FROM keyword must specify the name of the file that contains the compiled screen form. This filename can include a pathname, but this is not recommended.
Form files are found by using the directory paths defined in the DBPATH or FGLRESOURCEPATH environment variable. It is not recommended that you provide a path for filename; Instead, use simple file names in programs and put the compiled forms in a directory defines in DBPATH / FGLRESOURCEPATH environment variable.
If you execute an OPEN FORM with the name of an open form, the runtime system first closes the existing form before opening the new form.
The scope of reference of form identifier is the entire program.
When the window is dedicated to the form, use the OPEN WINDOW WITH FORM instruction to create the window and the form object in one statement.
In TUI mode, the form is displayed in the current window at the position defined by the FORM LINE attribute that can be specified in the ATTRIBUTE clause of OPEN WINDOW or as default with the OPTIONS instruction.
After the form is loaded, you can activate the form by executing a CONSTRUCT, DISPLAY ARRAY, INPUT, INPUT ARRAY, or DIALOG statement. When the runtime system executes the OPEN FORM instruction, it allocates resources and loads the form into memory. To release the allocated resources when the form is no longer needed, the program must execute the CLOSE FORM instruction. This is a memory-management feature to recover memory from forms that the program no longer displays on the screen. If the form was loaded with a window by using the WITH FORM clause, it is automatically closed when the window is closed with a CLOSE WINDOW instruction.
MAIN OPEN FORM f1 FROM "customer" DISPLAY FORM f1 CALL input_customer() CLOSE FORM f1 OPEN FORM f2 FROM "custlist" DISPLAY FORM f2 CALL input_custlist() CLOSE FORM f2 END MAIN