panel上放一些动态生成的控件,关闭窗口的时候需要手工释放吗?
比如create一些label放上去,关闭的时候,是否需要手工释放这些对象?

解决方案 »

  1.   

    如果parent是nil则需要,否则不需要,父控件会帮你释放,不过我的习惯都是自己释放
      

  2.   

    在创建动态控件的时候
    比如:
    Button:=TButton.Create(Owner);
    如果指定的Owner为nil,需要手动释放
    如果Owner不为nil,比如是一个Panel,那么在Panel释放之前会将Button释放
      

  3.   

    是否释放是判断Owner,不是判断Parent。
      

  4.   

    我曾经在一个程序里设定动态image控件,当按button1时create,button2时free。先按button1,后按button2,如此循环。当第二次轮到button2时,程序死了。(但在编译时delphi却没有查出任何errors)