動的に作成したコントロールの削除方法

解決


リュウ  2004-08-27 05:48:40  No: 10613  IP: [192.*.*.*]

動的にTImageを作成し図を表示させることができました。
動的に作成したTImageを削除することは可能でしょうか?

編集    削除
TtPIPICH  2004-08-27 06:21:58  No: 10614  IP: [192.*.*.*]

そのコンポーネントのfreeメソッドを呼び出します。

編集    削除
リュウ  2004-08-27 07:20:17  No: 10615  IP: [192.*.*.*]

ありがとうございます。上手く行きました。

編集    削除
snowman  2005-06-12 06:46:50  No: 10616  IP: [192.*.*.*]

コントロールをダイレクトにFreeしてしまうとオーナーのコントロールリストに無効ポインタとして残ってしまいます。

TWinControl:RemoveControl
が最善かもしれません。

編集    削除
えーと  2005-06-12 07:55:22  No: 10617  IP: [192.*.*.*]

>コントロールをダイレクトにFreeしてしまうとオーナーのコントロールリストに無効ポインタとして残ってしまいます。

これは初耳です。わたしが試したところではそんなことはないです。

編集    削除
 2005-06-12 09:23:47  No: 10618  IP: [192.*.*.*]

// Classes.pasより抜粋
destructor TComponent.Destroy;
begin
  // 省略
  if FOwner <> nil then FOwner.RemoveComponent(Self); // ※
  inherited Destroy;
end;

> オーナーのコントロールリストに無効ポインタとして残ってしまいます。
※の部分をご覧ください。

編集    削除