System.Classes.TDataModule.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 System.Classes.pas System.Classes TDataModule

Beschreibung

Erstellt eine Instanz eines Datenmoduls und registriert es bei dem globalen TScreen-Objekt.

Verwenden Sie CreateNew anstelle von Create, um ein Datenmodul ohne die Verwendung der zugehörigen Formulardatei zu dessen Initialisierung zu erstellen.

Warnung:  Die Verwendung von CreateNew anstelle von Create kann zu unvorhersehbaren Ergebnissen führen, da die meisten Datenmodule unter der Voraussetzung geschrieben werden, dass die Steuerelemente aus der Formulardatei erzeugt werden.

CreateNew ruft den geerbten Konstruktor auf und benachrichtigt dann das globale TScreen-Objekt über die Existenz des Datenmoduls.

Das erste Argument, AOwner, ist der Eigentümer des Datenmoduls (in der Regel die Anwendung). 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.

CreateNew umgeht das Einlesen der zuvor zugewiesenen Formulardatei. Sie müssen daher eine externe Formulardatei verwenden, um die visuellen Komponenten an ihre Klassen zu binden. Mit InitInheritedComponent kann die zuvor zugewiesene Formulardatei eingelesen werden. Um eine andere Formulardatei einzulesen, muss der Aufruf von CreateNew zwischen dem Aufruf von WriteComponentResFile und ReadComponentResFile stehen. Die folgende Code-Sequenz

1. schreibt eine externe Formulardatei per Stream.

2. erzeugt ein neues Datenmodul ohne Zuweisung an eine Formulardatei.

3. liest die externe Formulardatei per Stream ein und bindet sie an das neue Formular:

WriteComponentResFile('Temp.xfm', DataModule1); ...

DataModule2 := TDataModule.CreateNew(Application);

ReadComponentResFile('Temp.xfm', DataModule2);

Siehe auch