Vcl.Forms.TCustomForm.CreateNew

De RAD Studio API Documentation
Aller à : navigation, rechercher

Delphi

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

Propriétés

Type Visibilité  Source Unité  Parent
constructor public Vcl.Forms.pas Vcl.Forms TCustomForm


Description

Crée et initialise une nouvelle fiche.

Utilisez CreateNew au lieu de Create pour créer une fiche sans utiliser le fichier .DFM associé pour l'initialiser. Utilisez toujours CreateNew si le descendant de TCustomForm n'est pas un objet TForm ou un descendant de TForm.

CreateNew outrepasse le flux d'entrée du fichier .DFM associé. Néanmoins, si la fiche contient des composants visuels, vous devez mettre en flux un fichier . DFM externe afin de lier les composants visuels avec leurs classes. Si la fiche nouvellement créée possède un fichier .DFM externe, vous pouvez appeler InitInheritedComponent à la suite de CreateNew. Si vous devez créer le fichier .dfm de la nouvelle instance de fiche, appelez CreateNew en utilisant des appels à WriteComponentResFile et ReadComponentResFile. La séquence de code suivante 

  1. permet d'extraire un fichier DFM du flux ;
  2. crée une nouvelle fiche dissociée de tout fichier de ressources .DFM ;
  3. lit depuis un flux le fichier .DFM externe et le lie à cette nouvelle fiche.
WriteComponentResFile('Temp.dfm', Form1);
...

Form2 := TForm.CreateNew(Application);

ReadComponentResFile('Temp.dfm', Form2);

Warning: Utiliser CreateNew au lieu de Create peut provoquer des résultats imprévisibles, car la plupart des fiches sont écrites en présumant que leurs contrôles seront créés à partir du fichier .DFM.

La méthode CreateNew appelle Create et InitializeNewForm. Elle n'appelle pas l'événement OnCreate lors de la création de la fiche.

Le premier argument, AOwner, désigne le propriétaire de la fiche (habituellement il s'agit de l'application ou d'une autre fiche). Le deuxième argument, Dummy, a la valeur 0 par défaut et n'est pas utilisé par ce constructeur. Le système transmet 0 par défaut si le constructeur n'a reçu que le premier argument, AOwner.

Voir aussi