关于Components属性的问题?
根据Components属性的描述,他是只判断owner为form的控件个数。
那么form1.Components有意义,就是看form上有几个控件。
而panel1.Components有意义么?如果没意义那么这句话怎么会符合语法呢?  如果我在panel上有一个button,那么button的parent是panel,而owner仍然是form。 怎么放控件,才能使他的owner是panel1。
  
  如果我有form1,其中包括panel1。我现在创建frame1,其parent是panel1,
那么frame1的owner是否是form1呢?

解决方案 »

  1.   

    先说你中间的那个问题,var
      b: TButton;
    begin
      b.Create(Panel);
      b.Parent := Panel;
    end;如上,button的parent和owner就都是panel
    那么这个时候panel1.Components就包含有b了,所以你的第一个问题就有答案了
    frame没研究,现在暂时懒得去研究,就不说了,你自己看看VCL源代码吧
      

  2.   

    楼上正解
    扩展看一下,下面的代码!
    在Button1Click中。
    var
       ClassRef:TClass;
    begin
       ListBox1.Clear;
       //ClassRef ;= sender.ClassType;//看这句和下面这句
       ClassRef := Panel1.Classtype;
       while  classref <>nil do
       begin
         ListBox1.Items.Add(ClassRef.Classname);
         ClassRef := ClassRef.ClassParent;
       end;
    end;