コンポーネントと所有関係

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

オブジェクトの作成、インスタンス化、破棄 への移動


Delphi コンポーネントには、一方のコンポーネントがもう一方のコンポーネントの解放を担当できるメモリ管理メカニズムが組み込まれています。前者(解放する側)のコンポーネントは後者(解放される側)のコンポーネントを所有していると表現されます。所有者のメモリが解放されると、所有されている側のコンポーネントのメモリも自動的に解放されます。コンポーネントの所有者(つまり Owner プロパティの値)は、コンポーネントの作成時にコンストラクタに渡されるパラメータによって決まります。デフォルトでは、フォームはそのフォーム上のコンポーネントをすべて所有し、アプリケーションが今度はフォームを所有します。したがって、アプリケーションが停止すると、すべてのフォームおよびフォーム上のすべてのコンポーネントのメモリが解放されます。

所有関係は、TComponent とその下位クラスにのみ適用されます。たとえば、TStringList オブジェクトや TCollection オブジェクトを作成した場合、(たとえそれがフォームに関連付けられていても)そのオブジェクトの解放はプログラム側で行う必要があります。

関連項目