System.Classes.TComponent.Create
Delphi
constructor Create(AOwner: TComponent); virtual;
C++
__fastcall virtual TComponent(TComponent* AOwner);
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
constructor | public | System.Classes.pas System.Classes.hpp |
System.Classes | TComponent |
説明
メモリを割り当てて,コンポーネントのインスタンスを構築して安全に初期化します。
すべてのオブジェクトには,オブジェクトを構築する Create メソッドがあります。TComponent は Create を再定義します。これにより,コンポーネントの Create は次の処理を行います。
- コンポーネントとその Owner(
AOwner
パラメータで指定)との関係を構築する。
- ComponentStyle プロパティを csInheritable に設定して,下位のフォーム型がコンポーネントを継承できるようにする。
フォームデザイナで追加したコンポーネントは,明示的に作成する必要はありません。これらのコンポーネントは,アプリケーションを起動すると自動的に作成され,アプリケーションを終了すると破棄されます。
プログラムで作成したコンポーネントは,フォームデザイナで作成したものではないため,Create メソッドを呼び出し,オーナーのコンポーネントを AOwner
パラメータに渡します。オーナーを破棄するとコンポーネントは破棄されます。コンポーネントが所有されていない場合,コンポーネントを破棄するには,Free メソッドを使用します。
ヒント: Owner パラメータとして
Self
を渡すときは,Self
の参照先に注意してください。コンポーネントがその 1 つのメソッドの中にほかのコンポーネントを作成する場合,Self
は最初のコンポーネントを参照します。最初のコンポーネントが後に所有する作成中のコンポーネントは参照されません。
メモ: TComponent コンストラクタは,クラス参照の多様なインスタンス化を可能にするという意味で仮想メソッドと言えます。これはストリームシステムやフォームデザイナにとっては重要です。新しいコンポーネントの Create コンストラクタを宣言する場合は,必ず override 指令を使用してください。