Formularinstanzen mit lokalen Variablen erstellen
Nach oben zu Die Benutzeroberfläche erstellen - Index
Mithilfe einer lokalen Variablen kann in einer Ereignisbehandlungsroutine eine eindeutige Instanz eines modalen Formulars erstellt werden. In diesem Fall spielt es keine Rolle, ob das Formular automatisch erstellt wird oder nicht. Die Ereignisbehandlungsroutine enthält keine Referenz auf die globale Formularvariable. Beispiel:
procedure TMainForm.Button1Click(Sender: TObject); var RF:TResultForm; begin RF:=TResultForm.Create(self) RF.ShowModal; RF.Free; end;
void __fastcall TMainMForm::FirstButtonClick(TObject *Sender) { TResultsForm *rf = new TResultsForm(this); rf->ShowModal(); delete rf; }
Beachten Sie, dass die globale Instanz des Formulars in dieser Ereignisbehandlungsroutine nicht verwendet wird.
Normalerweise werden in einer Anwendung die globalen Formularinstanzen verwendet. Wenn Sie jedoch eine neue Instanz eines modalen Formulars lediglich in einem eingegrenzten Bereich (z.B. in einer Funktion) benötigen, ist eine lokale Instanz die sicherste und effizienteste Methode. In Ereignisbehandlungsroutinen für nichtmodale Formulare können natürlich keine lokalen Variablen verwendet werden.
Dieser Formulartyp erfordert einen globalen Gültigkeitsbereich. Die Variable muss so lange sichtbar sein, wie das Formular benötigt wird. Da die Methode Show sofort nach dem Öffnen des Formulars beendet wird, ist die lokale Variable danach nicht mehr sichtbar.