Vcl.Forms.TCustomForm.CreateNew

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

Delphi

constructor CreateNew(AOwner: TComponent; Dummy: Integer  = 0); virtual;

Eigenschaften

Typ Sichtbarkeit Quelle Unit Übergeordnet
constructor public Vcl.Forms.pas Vcl.Forms TCustomForm

Beschreibung

Erzeugt und initialisiert ein neues TForm-Objekt.

CreateNew sollte anstelle des Konstruktors Create verwendet werden, wenn Sie ein Formular erzeugen wollen, ohne dass es in der zugehörigen .DFM-Datei initialisiert wird. Verwenden Sie CreateNew immer dann, wenn der Nachkomme von TCustomForm kein TForm-Objekt oder kein Nachkomme von TForm ist.

CreateNew umgeht das Einlesen der zuvor zugewiesenen .DFM-Datei. Enthält das Formular visuelle Komponenten, müssen Sie deshalb eine externe .DFM-Datei einlesen, um die visuellen Komponenten an ihre Klassen zu binden. Verfügt das neue Formularobjekt über eine externe .DFM-Datei, rufen Sie nach CreateNew die Methode InitInheritedComponent auf. Wenn Sie die .dfm-Datei für die neue Formularinstanz erstellen müssen, schließen Sie den Aufruf von CreateNew in WriteComponentResFile- und ReadComponentResFile-Aufrufe ein. Die folgende Code-Sequenz

  1. schreibt eine externe .DFM-Datei;
  2. erstellt ein neues Formular, das nicht an eine .DFM-Ressourcendatei gebunden ist;
  3. liest eine externe .DFM-Datei ein und bindet sie an das neue Formular.
WriteComponentResFile('Temp.dfm', Form1);
...

Form2 := TForm.CreateNew(Application);

ReadComponentResFile('Temp.dfm', Form2);

Warnung: Die Verwendung von CreateNew anstelle von Create kann zu unvorhersehbaren Ergebnissen führen, da die meisten Formulare unter der Voraussetzung geschrieben werden, dass ihre Steuerelemente in der .DFM-Datei erzeugt werden.

Die Methode CreateNew ruft Create und InitializeNewForm auf.

Das erste Argument, AOwner, gibt den Eigentümer des Formulars an (normalerweise ist der Eigentümer die Anwendung oder ein anderes Formular). Das zweite Argument, Dummy, hat die Standardeinstellung 0 und wird von diesem Konstruktor nicht verwendet. Das System übergibt standardmäßig 0, wenn dieser Konstruktor nur das erste Argument, AOwner, übergibt.

Siehe auch