详细地解释一下vcl组件的‘拥有关系’和‘父子关系’的区别吧

解决方案 »

  1.   

    拥有关系:
    form2:=tform.create(form1);
    则form1释放时,form2也将被释放父子关系:
    windows.setparent(form2.handle,form1.handle);//将form2的parent设为form1
    则form1为父,form2为子,但form2释放时,form1并不会同时被释放。
      

  2.   

    一般的说来提到了拥有(Owner)就提到了内存的释放,因为,Owner有责任释放他所有的Owned,窗体缺省的是窗体上面所有控件的Owner;
    父子(Parent)大多数与控件的属性继承有关系,比如说,可以设置parent- properties为True,可以限制Child的Font,Style等等和Parent的保持一致,可以限制Parent的重画范围等等,暂时就能想到这些...