VCL-Formularinstanzen mit lokalen Variablen erstellen

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu So erstellen Sie VCL-Formularanwendungen


Mit Hilfe einer lokalen Variablen kann in einer Ereignisbehandlungsroutine eine eindeutige Instanz eines modalen VCL-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. Die folgende Anleitung veranschaulicht, wie in RAD Studio eine modale Formularvariable dynamisch erstellt wird. Dabei wird (wahlweise) das zweite Formular beim Anwendungsstart nicht aufgerufen.

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 (optional).
  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 C++Builderr-Projekte, und doppelklicken Sie auf das Symbol Formular. Im VCL-Formular-Designer wird Form2 angezeigt.

So entfernen Sie den Aufruf des zweiten Formulars beim Anwendungsstart (optional):

  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. Bewegen Sie in Delphi den Cursor unmittelbar vor den Block der Ereignisbehandlungsroutine, und geben Sie zur Definition einer lokalen Variable die folgende Anweisung ein:
var FM: TForm2;
Geben Sie in C++ folgende Variablendeklaration ein:
TForm2 *FM;
  1. Bewegen Sie den Cursor in den Block der Ereignisbehandlungsroutine, und geben Sie folgenden Quelltext ein:
FM := TForm2.Create(self);
FM.ShowModal;
FM.Free;
FM = new TForm2( this );
FM->ShowModal();
FM->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. Lassen Sie Form2 angezeigt, und klicken Sie auf Form1, um es zu aktivieren.Nichts geschieht.
Klicken Sie auf das Schließfeld (X) in der oberen rechten Ecke von Form2.Form2 wird geschlossen, und Form1 wird zum aktiven Formular.

Siehe auch