LoadForm()
LoadForm() – Individual-Formular laden
Funktion zum Laden und Instantiieren eines Individual-Formulars ("F12-Formular"), welches einem Indi.Prog. zugewiesen wurde.
Hinweis
Mit Zuweisung und Gestaltung eines Formulars eines Indi.Progs. entsteht eine direkte Verbindung von Formular und Programm, so dass i.d.R. das Laden des Formulars mittels LoadForm() im selben Programm erfolgt, dem das Formular zugewiesen wurde.
Prinzipiell ist aber ein unabhängiger Aufruf in einem anderen Kontext möglich.
Parameter | Beschreibung |
---|---|
uID:U | ID des Formulars |
oOwner:O | Owner des zu erstellenden Formulars |
Rückgabewert
Formular-Objekt, Klasse wird in der Formular-Zuweisung in der Programmier-Umgebung angegeben
Beispiel
//******************************************************************************
//******************************************************************************
// Beispiel eines individuell designten Formulars (MDI-Child Fenster)
//******************************************************************************
// Ablauf:
//******************************************************************************
// 1. Neues Indi.Prog. erstellen
// 2. Menü "Extras" / "Formular zuweisen"
// -> Neue ID vergeben und Klasse des Formular-Objektes definieren
// (sollte i.d.R. "TFormEx" sein)
// 3. Menü "Extras" / "Formular-Designer anzeigen (F12)"
// -> Gestaltung des Formulars nach den üblichen Regeln für höhere
// Programmiersprachen
// -> Mit F12 / Alt+F12 kann zwischen Editor und Designer gewechselt werden
// -> Mit einem Doppel-Klick auf ein Ereignis im "Objektinspektor"
// wird ein entsprechendes Event-Handle automatisch erstellt
// 4. (optional) Menü "Extras" / "Formular-Deklaration einfügen"
// -> Fügt die Deklaration zum Laden des Formulars, sowie eine (optionale)
// Definition für sämliche Controls in den Source ein
// 5. Abschließende Statements z.B. "Show(oForm)" / "ShowModal(oForm)"
// zur Anzeige des Formulars einfügen
// 6. Die Rückgabe des Programms sollte immer das Formular-Objekt sein, damit
// das Programm z.B. per CallPersist() aufgerufen und das Formular weiter
// verwendet werden kann
//******************************************************************************
// Das u.g. Bespiel-Formular kann später jederzeit über ein CallPersist()
// aufgerufen werden. Indi.Prog:
| oOwner:P1, oForm |
//******************************************************************************
// FormExClose - Formular freigeben
// Wichtig: sonst wird ein MDI-Formular nicht freigegeben, sonden nur
// auf nicht-sichtbar gesetzt.
//******************************************************************************
function FormExClose(Sender, CloseAction)
CloseAction := 2, // entspricht "caFree"
end,
//******************************************************************************
// Hauptprogramm
//******************************************************************************
if Empty(oOwner) then
oOwner := Application
endif,
startseq,
oForm := LoadForm("@MDI1", oOwner),
if ClassOf(oOwner, "TForm") and oOwner.FormStyle = 2 then
oForm.FormStyle := 1, // MDI-Child, aber nur wenn Owner = MDI-Parent
endif,
onerror
DestroyObject(oForm),
Meld(GetErrorText()),
stopseq,
Show(oForm),
oForm