Vcl.Forms.TForm.Create
C++
/* TCustomForm.Create */ inline __fastcall virtual TForm(System::Classes::TComponent* AOwner) : TCustomForm(AOwner) { }
/* TCustomForm.CreateNew */ inline __fastcall virtual TForm(System::Classes::TComponent* AOwner, int Dummy) : TCustomForm(AOwner, Dummy) { }
/* TWinControl.CreateParented */ inline __fastcall TForm(HWND ParentWindow) : TCustomForm(ParentWindow) { }
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
constructor | public | Vcl.Forms.hpp | Vcl.Forms | TForm |
説明
TForm インスタンスを作成して初期化します。
これは TForm のコンストラクタです。
Delphi の場合、TForm のコンストラクタは Vcl.Forms.TCustomForm.Create です。Delphi と C++ 両方のコンストラクタの説明は、Vcl.Forms.TCustomForm.Create にあります。
ほとんどのアプリケーションでは、TForm を呼び出すのではなく、フォーム デザイナで定義された TForm の下位クラスをインスタンス化します。実際に TForm インスタンスを作成するアプリケーションでは、new キーワードを使用して間接的に TForm を呼び出して、実行時に新しいフォーム オブジェクトを作成します。設計時にアプリケーションに追加されたフォームは、自動的に作成されます。
フォームを解放する責務を持つ所有者にするよう、1 つのコンポーネントをパラメータとして渡します(通常はアプリケーション)。これが、最もよく使用されるコンストラクタの構文です。
コンポーネントと整数を渡すと、フォームのプロパティや下位クラスを .DFM ファイルから読み込むストリーミング システムを迂回して、フォームを作成することができます。2 番目のパラメータ(Dummy)は、このコンストラクタを最初のコンストラクタと区別するためだけに使われます。このコンストラクタは、フォーム オブジェクトではほとんど使用されません。この構文を使用する場合は、外部 .DFM をストリーム入力して、そのクラスとビジュアル コンポーネントをバインドします。WriteComponentResFile と ReadComponentResFile でコンストラクタの呼び出しを囲む必要があります。次のコードでは以下の処理を行っています。
- 外部 .DFM ファイルをストリーム出力する。
- .DFM リソース ファイルと関連付けられていない新しいフォームを作成する。
- 外部 .DFM ファイルをストリーム入力し、この新しいフォームにバインドする。
WriteComponentResFile("Temp.dfm", Form1);
// ...
Form2 = new TForm(Application, 1);
ReadComponentResFile("Temp.dfm", Form2);
ウィンドウ ハンドルをパラメータとして渡し、フォームを非 VCL ウィンドウに埋め込みます。この構文を使用するのは、非 VCL ウィンドウに埋め込まれる ActiveX コントロールとしてフォームを実装する場合です。