こんにちは、お世話になります。
LabelがScrollBox1を親としていくつか配置してあるのですが、
これら全ての、しかもLabelのみを解放したいのですが、
どういう方法がありますか?
動的生成で作ることは見よう見まねでできたのですが、
それを消してクリアーにする方法がわかりません。
よろしくお願いいたします。
コードがわからぬので何とも・・・だが
>Labelのみを解放したいのですが
そのまま、動的に生成したオブジェクトを解放すれば良いだけだが
var
ObjLbl :TLabel;
begin
ObjLbl :TLabel.Create(Self);//生成
try
{処理、処理}
finally
ObjLbl.Free;//解放
end;
end;
何故、できぬ???
>それを消してクリアーにする方法がわかりません。
この文章の意味するところがよくわからんのだが
目的とするところが、動的に生成したオブジェクト
が破棄されているかどうかがしりたい?
ならば
ObjLbl.Free;
ObjLbl := nil;
または
FreeAndNil(ObjLbl);
で
if ObjLbl = nil then //True なら生成されていないか、破棄されている
えと
procedure TForm1.FormCreate(Sender: TObject);
var
i:integer;
begin
for i:=0 to 9 do
with TLabel.Create(ScrollBox1) do
begin
Parent:=ScrollBox1;
Caption:=IntToStr(i);
Top:=i * Height *2;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
for i:=ScrollBox1.ComponentCount-1 downto 0 do
if ScrollBox1.Components[i] is TLabel then
TLabel(ScrollBox1.Components[i]).Free;
end;
的確な用語がわからず、すみません。
そうそう、破棄でした。
「けど」さんの
begin
for i:=ScrollBox1.ComponentCount-1 downto 0 do
if ScrollBox1.Components[i] is TLabel then
TLabel(ScrollBox1.Components[i]).Free;
end;
この方法が知りたかったです。
ありがとうございました。
ツイート | ![]() |