Hello,
just some technical background.
Multiple OPEN FORM ... DISPLAY FROM will not DISPLAY all forms.
What happens?
Each FORM has a internal flag, if it's currently used by a screen interaction statement (INPUT, MENU, DISPLAY ARRAY, CONSTRUCT).
If a form "b" is displayed over form "a" the runtime hides the form "a" if this form is attached by a dialog else it removes the form completely.
Next example: GDC will see only one form.
MAIN
DEFINE f1 INTEGER
DEFINE f2 INTEGER
OPEN FORM form_a FROM "a"
DISPLAY FORM form_a
INPUT BY NAME f1;
OPEN FORM form_b FROM "b" -- the form_a is removed automatically
DISPLAY FORM form_b
INPUT BY NAME f2;
END MAIN
Next example: When stating the second INPUT, the first INPUT is still active: the runtime will hide form_a. When returning to the first INPUT, form_b will be removed and form_a shown.
MAIN
DEFINE f1 INTEGER
DEFINE f2 INTEGER
OPEN FORM form_a FROM "a"
DISPLAY FORM form_a
INPUT BY NAME f1
ON KEY(f5)
OPEN FORM form_b FROM "b"
DISPLAY FORM form_b -- the form_a is still alive, but hidden
INPUT BY NAME f2;
-- new the parent INPUT gets active again
-- no need to display form_a again
-- the runtime will remove form_b and show form_a automatically
END INPUT
END MAIN
Display multiple FORMs in one WINDOW can be an interesting feature, to avoid too many inactive windows. Especially when migrating from TUI or BDL.
Rene