如:
 var  m:Tmemo;
     begin
        m:=Tmemo.create(nil);
        m.parent:=self;   //在这里如果不定义parent容器就会出错,不需要容器不行吗
            
       哪些控件需要设置容器,哪些不需要了?      m:=Tmemo.create(form1);//这一句已经设了从属者为form1,为什么还要加一句
                              m.parent:=form1;才能显示了?
                         

解决方案 »

  1.   

    可视的控件都要有一个 Parent 
    它才能知道要在哪个容器上显示
    而且销毁时就可以由 Parent 来负责
      

  2.   

    简单说,TControl的子类都需要有Parent,否则不能显示,
    TComponent的非TControl子类因为不可见,不需要,比如TTimer,TTable等。还有,控件的销毁跟Parent没有关系,由Owner负责,
    就是 xxx.Create(AOwner)中的AOwner,一般是所在的Form(Form负责销毁)或nil(自己手工销毁)
      

  3.   

    m:=Tmemo.create(form1);
    但是我只有这一句就不能执行成功啊
      

  4.   

    如果说我没有设parent,它就执行错误,这是为什么,是不是Tcontrol的所有子类必须要设置parent了
      

  5.   

    没有parent 你说这个memo放到哪里去呢???
    除非你不显示。。
      

  6.   


    我已经说了,xxx.Create(AOwner)中的AOwner是控件的所有者,不是Parent,
    控件的Parent还是要通过xxx.Parent:=yyy 来设置,不会被自动设置的。