我用循环动态创建了10个按钮,用完了怎么释放呀!
在线等待!

解决方案 »

  1.   

    照样用循环释放
    button1.free;
    button1:=nil;
    和这个类似,怎么创建的,怎么释放
      

  2.   

    1。如果你这样做:
    var
    btn:tbutton;
    begin
      btn:=tbutton.create(self);
      btn:=tbutton.create(self);
      btn:=tbutton.create(self);
      ...
      btn:=tbutton.create(self);//十次
      
    end;
    那么只能释放最后一个。
    //////////////////////////
    2。如果:
    var
    btn1,btn2......btn10:tbutton;
    begin
      btn1:=tbutton.create(self);
      btn2:=tbutton.create(self);
      btn3:=tbutton.create(self);
      ...
      btn10:=tbutton.create(self);
      
    end;
    那么就一个个释放。//当然brnx不能是局部变量,至少是能被释放的语句访问。//////////////////
    2。如果:
    var
    btn:tbutton;
    list:tlist;
    begin
      list:=tlist.create;
      btn:=tbutton.create(self);
      list.add(btn);
      btn:=tbutton.create(self);
      list.add(btn);  ...
      btn:=tbutton.create(self);
      list.add(btn);//十次
      
    end;
    那么释放的时候这样:
    for i:=list.count-1 downto 0 do
      tobject(list.items[i]).free
      

  3.   

    for i:=Form1.ControlCount-1 downto 0 do
        if Form1.Controls[i] is TButton then
          Form1.Controls[i].Free;