Vcl.Forms.TCustomForm.CreateNew

提供: RAD Studio API Documentation
移動先: 案内検索

Delphi

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

プロパティ

種類 可視性 ソース ユニット
constructor public Vcl.Forms.pas Vcl.Forms TCustomForm


説明

新しいフォームを作成および初期化します。

CreateNew を、Create の代わりに使用すると、初期化するために関連 .DFM ファイルを使用することなく、フォームを作成することができます。 TCustomForm の下位クラスが、TForm オブジェクトか TForm の下位クラスでない場合、常に CreateNew を使用してください。

CreateNew は、すでに関連づけられている .DFM ファイルのストリーミング読み込みを省略します。 フォームにビジュアル コンポーネントがある場合には、外部 .DFM をストリーミングし、ビジュアル コンポーネントをそれらのクラスにバインドする必要があります。 新しく作成されたフォームに外部 .DFM ファイルがある場合、CreateNew への呼び出しに引き続き、InitInheritedComponent を呼び出すことができます。 新しいフォーム インスタンスに対して、.dfm ファイルを作成する必要がある場合、CreateNew への呼び出しを、WriteComponentResFile と ReadComponentResFile への呼び出しで挟みます。 以下がコードの流れです:

  1. 外部 .DFM ファイルへストリーム出力。
  2. いずれの .DFM リソース ファイルとも関連づけられていない、新しいフォームを作成。
  3. 外部 .DFM ファイルからストリーム入力し、それをこの新しいフォームにバインド。
WriteComponentResFile('Temp.dfm', Form1);
...

Form2 := TForm.CreateNew(Application);

ReadComponentResFile('Temp.dfm', Form2);

警告: 大抵のフォームは、そのコントロール群が .DFM ファイルから作成されることを想定して記述されているため、Create の代わりに CreateNew を使用すると、予期しない結果を招くことがあります。

CreateNew メソッドは、Create および InitializeNewForm を呼び出します。

最初の引数 AOwner は、フォームのオーナーです(通常、アプリケーションまたは他のフォームのオーナーになります。2 番目の引数 Dummy は、デフォルトが 0 で、このコンストラクタでは使用されません。このコンストラクタが第 1 引数、AOwner のみを渡してきた場合、システムはデフォルトで 0 を渡します。

関連項目