TComponent 分岐

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

オブジェクト、コンポーネント、コントロール への移動


TComponent 分岐には、TComponent から派生したクラスのうち、TControl の派生クラス以外が含まれます。この分岐のオブジェクトは、設計時にフォーム上で操作できるけれども、実行時にはユーザーに対して表示されないコンポーネントです。これは以下の機能を持つ永続オブジェクトです。

  • [ツール パレット]に表示され、フォーム上で変更することができます。
  • 他のコンポーネントを所有し管理することができます。
  • コンポーネント自体を読み込んだり保存することができます。

TComponent で導入されたいくつかのメソッドによって、設計時にコンポーネントがどのような動きをし、コンポーネントと一緒にどのような情報が保存されるかが決まります。ストリーミング(フォーム ファイルの保存と読み込み。このファイルには、フォーム上のオブジェクトのプロパティ値に関する情報が格納されます)はこの分岐で導入されています。プロパティに published を指定すると永続プロパティになり、published プロパティは自動的にストリーミングされます。

TComponent 分岐では所有という概念も導入され、コンポーネント ライブラリ全体で使われています。所有関係は Owner および Components という 2 つのプロパティでサポートされます。どのコンポーネントにも Owner プロパティがあり、そのコンポーネントの所有者である別のコンポーネントを参照しています。コンポーネントは別のコンポーネントを所有することができます。この場合、すべての被所有コンポーネントは、コンポーネントの Components プロパティで参照されます。

どのコンポーネントのコンストラクタも、新しく作成するコンポーネントの所有者を指定するパラメータを受け取ります。渡された所有者が存在する場合、新しいコンポーネントはその所有者の Components リストに追加されます。Components リストを使用して被所有コンポーネントを参照できるほか、このプロパティを基に被所有コンポーネントの自動破棄も行われます。所有者が設定されたコンポーネントであれば、所有者が破棄されたときにコンポーネントも破棄されます。たとえば、TFormTComponent の下位クラスなので、フォームが所有するコンポーネントはすべて、フォームが破棄されたときに破棄され、そのメモリも解放されます (もちろん、コンポーネントに対して適切に設計されたデストラクタで、コンポーネント自体を正しくクリーンアップしていることが前提です)。

プロパティの型が TComponent またはその下位クラスであれば、ストリーミング システムはそのプロパティを読み取るときにその型のインスタンスを作成します。プロパティの型が TPersistent だけれども TComponent でない場合は、ストリーミング システムはプロパティを通じてアクセスできる既存インスタンスを使用し、そのインスタンスのプロパティの値を読み取ります。


TComponent 分岐のクラスには次のようなものがあります。

  • TActionList: メニュー項目やボタンなど、コンポーネントおよびコントロールで使われるアクションのリストを保持するクラス。
  • TMainMenu: フォームのメニュー バーとそのドロップダウン メニューを提供するクラス。
  • TOpenDialogTSaveDialogTFontDialogTFindDialogTColorDialog など: 一般的に使われるダイアログ ボックスを提供するクラス。
  • TScreen: アプリケーションによってインスタンス化されるフォームやデータ モジュール、アクティブ フォーム、フォームに含まれるアクティブ コントロール、画面のサイズと解像度、アプリケーションで使用できるカーソルとフォントといった情報を管理するクラス。

ビジュアル インターフェイスが必要ないコンポーネントは TComponent から直接派生させることができます。TTimer デバイスなどのツールを作成する場合は、TComponent から派生させることができます。この種のコンポーネントは、[ツール パレット]に表示されますが、実行時にユーザー インターフェイスに表示されるのではなく、コードからアクセスされる内部関数を実行する働きをします。

コンポーネントのプロパティの設定、メソッドの呼び出し、イベントの処理の詳細は、「コンポーネントの利用」を参照してください。

関連項目