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


uwaou  2004-11-03 01:37:32  No: 11621

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

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


LupinⅢ  URL  2004-11-03 03:29:52  No: 11622

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

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


TtPIPICH  2004-11-03 05:00:38  No: 11624

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


HOta  2004-11-03 05:33:00  No: 11625

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加