Modale VCL-Formulare dynamisch erstellen

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu So erstellen Sie VCL-Formularanwendungen

Es ist nicht immer sinnvoll, alle Formulare einer VCL-Anwendung ständig im Speicher zu halten. Sie können den Speicherbedarf einer Anwendung reduzieren, indem Sie dafür sorgen, dass Formulare nur bei Bedarf erstellt werden. Ein Dialogfeld wird beispielsweise nur während Benutzerinteraktionen benötigt. Die folgende Anleitung veranschaulicht, wie in RAD Studio ein modales Formular dynamisch erstellt wird. Der Hauptunterschied zwischen der dynamischen Erstellung eines Formulars und der Anzeige eines automatisch erstellten VCL-Formulars besteht darin, dass Sie den Aufruf des zweiten Formulars bei Anwendungsstart entfernen und Quelltext für das dynamische Erstellen des Formulars schreiben müssen.

Die Erstellung dieser VCL-Anwendung umfasst die folgenden grundlegenden Schritte:

  1. Das Projektverzeichnis anlegen.
  2. Zwei Formulare für das Projekt erstellen.
  3. Den Aufruf des zweiten Formulars beim Anwendungsstart entfernen.
  4. Die Formulare verknüpfen.
  5. Ein Steuerelement im Hauptformular erstellen, das das modale Formular erzeugt und anzeigt, und die Ereignisbehandlungsroutine verfassen.
  6. Die Anwendung compilieren und ausführen.

So erstellen Sie die beiden Formulare:

  1. Wählen Sie Datei > Neu > Weitere > Delphi-Projekte oder C++Builder-Projekte, und doppelklicken Sie auf das Symbol VCL-Formularanwendung. Im VCL-Formular-Designer wird Form1 angezeigt.
  2. Wählen Sie Datei > Neu > Weitere > Delphi-Projekte > Delphi-Dateien oder Datei > Neu > Weitere > C++Builder-Dateien, und doppelklicken Sie auf das Symbol Formular. Im VCL-Formular-Designer wird Form2 angezeigt.

So entfernen Sie den Aufruf des zweiten Formulars beim Anwendungsstart:

  1. Wählen Sie Projekt > Optionen > Formulare. Das Dialogfeld Projektoptionen wird geöffnet.
  2. Wählen Sie in der Liste Automatisch erzeugen das Formular Form2 aus, und klicken Sie auf die schließende spitze Klammer [>].Form2 wird in die Liste Verfügbare Formulare verschoben.
  3. Klicken Sie auf OK, um das Dialogfeld zu schließen.

So verknüpfen Sie Form1 mit Form2:

  1. Markieren Sie Form1, und wählen Sie Datei > Unit verwenden. Das Dialogfeld Unit verwenden wird geöffnet.
  2. Wählen Sie Form2 im Dialogfeld aus (das Formular, auf das Form1 zugreifen soll).
  3. Klicken Sie auf OK. In Delphi wird in den implementation-Abschnitt von Unit1 eine uses-Klausel eingefügt, die den Unit-Namen Unit2 enthält. In C++ wird die Direktive #include "Unit2.h" in Unit1.h eingefügt.

So zeigen Sie Form2 von Form1 aus an:

  1. Vergewissern Sie sich, dass Form1 ausgewählt ist. Ziehen Sie dann aus der Seite Standard der Tool-Palette eine TButton-Komponente in das Formular.
  2. Wählen Sie im Objektinspektor die Komponente Button1 aus, und doppelklicken Sie auf der Registerkarte Ereignisse auf das Ereignis OnClick. Der Quelltext-Editor wird angezeigt. Der Cursor befindet sich bereits im Block der Ereignisbehandlungsroutine TForm1.Button1Click (Delphi) bzw. TForm1::Button1Click (C++).
  3. Geben Sie folgenden Quelltext für die Ereignisbehandlungsroutine ein:
Form2 := TForm2.Create(self);
try
  Form2.ShowModal;
finally
  Form2.Free;
end;
Form2 = new TForm2( this );
try {
  Form2–>ShowModal();
} __finally {
  Form2–>Free();
}

So compilieren Sie die Anwendung und führen sie aus:

  1. Speichern Sie alle Dateien des Projekts. Wählen Sie dann Start > Ausführen. Die Anwendung wird ausgeführt und zeigt Form1 an.
  2. Klicken Sie auf die Schaltfläche. Form2 wird angezeigt.
  3. Klicken Sie auf das Schließfeld (X) in der oberen rechten Ecke des Formulars. Form2 wird geschlossen, und Form1 wird zum aktiven Formular.

Siehe auch