コンポーネントの破棄→作成


uwaou  2004-11-03 01:37:32  No: 11621  IP: [192.*.*.*]

メモリ節約の為に、既に設計時に配置したコンポーネントのインスタンスを破棄し、何かのイベントで再び作成ということがしたいです。

例えば、フォームに貼り付けてあるラベルをボタンを押すことで破棄し、
再度ボタンを押すと作成される、ということがしたいです。
よろしくお願いします。

編集    削除
LupinⅢ  URL  2004-11-03 03:29:52  No: 11622  IP: [192.*.*.*]

var
  Lbl:TLabel;
//作成
Lbl := TLabel.Create(Self);
Lbl.Parent := Form1;
Lbl.Left := 0;
Lbl.Top := 0;


//破棄
Lbl.Free;

こんな感じでしょうか

編集    削除
uwaou  2004-11-03 03:58:16  No: 11623  IP: [192.*.*.*]

Lupinさんお返事ありがとうございます。
質問が要領を得てなくてすみません。
私がやりたいことは、例えば、設計時にLabelのフォントやイベントを設定し、フォームに配置しておき、実行時に必要な時だけLabelの
破棄・作成をしたいのです。再生成したときには設計時と同じフォントや
イベントを持った状態で生成して欲しいんですが、出来ますでしょうか?
一度破棄してしまうと、再度作成するときは新たにプロパティ等を
設定し直さないといけないのでしょうか?

編集    削除
TtPIPICH  2004-11-03 05:00:38  No: 11624  IP: [192.*.*.*]

Labelが大量に有るのなら、一つだけ残しておいて、そこからAssignすればよいと思います。
Labelが大量に無ければ、放棄しなくてもよいと思います。
>イベントを持った状態で生成して欲しいんですが、出来ますでしょうか?
>一度破棄してしまうと、再度作成するときは新たにプロパティ等を
>設定し直さないといけないのでしょうか?
破棄というのは、そのような情報も破棄しているわけです。
いいかえれば、プロパティを保持するのにメモリを使っているようなわけですし。

編集    削除
HOta  2004-11-03 05:33:00  No: 11625  IP: [192.*.*.*]

uwaouさん、こんにちは
Labelをメモリーが足りなくなるほど使う方がどうかと思います。
こんな場合は、システムを見直す方が先だと思います。
使う器械よって、動いたり動かなかったりします。

編集    削除