Nicht-modale VCL-Formulare dynamisch erstellen

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu So erstellen Sie VCL-Formularanwendungen

Ein nicht-modales Formular ist ein Fenster, das auf dem Bildschirm bleibt, bis es von einem anderen Fenster verdeckt oder vom Benutzer geschlossen oder minimiert wird. Die folgende Anleitung veranschaulicht, wie in RAD Studio ein nicht-modales Formular dynamisch erstellt wird.

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. 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 Button-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);
Form2.Show;
Form2 = new TForm2( this );
Form2–>Show();

Anmerkung:  Wenn Sie in Ihrer Anwendung weitere Instanzen des nicht-modalen Formulars benötigen, deklarieren Sie für jede Instanz eine eigene globale Variable. Meistens können Sie die beim Erstellen des Formulars deklarierte globale Referenz verwenden (die Variable, deren Namen mit der Eigenschaft Name des Formulars übereinstimmt).

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 Form1.Form1 wird das aktive Formular. Form2 bleibt angezeigt, bis es minimiert oder geschlossen wird.

Siehe auch