Vcl.Forms.TCustomForm.CreateNew
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 への呼び出しで挟みます。 以下がコードの流れです:
- 外部 .DFM ファイルへストリーム出力。
- いずれの .DFM リソース ファイルとも関連づけられていない、新しいフォームを作成。
- 外部 .DFM ファイルからストリーム入力し、それをこの新しいフォームにバインド。
WriteComponentResFile('Temp.dfm', Form1); ... Form2 := TForm.CreateNew(Application); ReadComponentResFile('Temp.dfm', Form2);
警告: 大抵のフォームは、そのコントロール群が .DFM ファイルから作成されることを想定して記述されているため、Create の代わりに CreateNew を使用すると、予期しない結果を招くことがあります。
CreateNew メソッドは、Create と InitializeNewForm を呼び出します。これは、フォーム作成時に OnCreate イベントを呼び出しません。
最初の引数 AOwner は、フォームのオーナーです(通常、アプリケーションまたは他のフォームのオーナーになります。2 番目の引数 Dummy は、デフォルトが 0 で、このコンストラクタでは使用されません。このコンストラクタが第 1 引数、AOwner のみを渡してきた場合、システムはデフォルトで 0 を渡します。