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

解決


リュウ  2004-08-26 20:48:40  No: 10613  IP: 192.*.*.*

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

編集 削除
TtPIPICH  2004-08-26 21:21:58  No: 10614  IP: 192.*.*.*

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

編集 削除
リュウ  2004-08-26 22:20:17  No: 10615  IP: 192.*.*.*

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

編集 削除
snowman  2005-06-11 21:46:50  No: 10616  IP: 192.*.*.*

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

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

編集 削除
えーと  2005-06-11 22:55:22  No: 10617  IP: 192.*.*.*

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

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

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

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

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

編集 削除