こんにちは、お世話になります。
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;
この方法が知りたかったです。
ありがとうございました。
| ツイート | 
        
         |