单元一 U1(部分代码):.......
implementation
uses U2;
procedure   TForm1.Button1Click(Sender:   TObject);
var m:array[1..4] of TCheckBox;
    k:integer;
begin
for k:=1 to 4 do
 begin
  with TCheckBox.Create(self) do
      begin
      parent:=U2.GroupBox2;
      caption:='K'+IntToStr(k);
      name:='qck'+ IntToStr(k);
      left:=k*30;
      top:=20;
 end;
 end;
end;单元二 U2......
implementation
uses U2;
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
 for i:=TForm1.ComponentCount-1 downto 0 do
   begin
    showMessage(TForm1.Components[i].Name);
   end;
end;在弹出的控件名称当中,并没有qck1,qck2..等名称的checkBox,各位高手,这是为何?

解决方案 »

  1.   

     for i:=U2.GroupBox2.ComponentCount-1 downto 0 do
       begin
        showMessage(U2.GroupBox2.Components[i].Name);
       end;
      

  2.   

    还是不行啊,能够在GroupBox2上显示,但为什么U2取不到呢?
      

  3.   

    弄不懂 你怎么2个单元的窗体都叫TFORM1啊
      

  4.   

    form是我乱写的。
    U2改为如下还是不行。......
    implementation
    uses U1;
    procedure uForm.Button1Click(Sender: TObject);
    var i:integer;
    begin
     for i:=uForm.GroupBox2.ComponentCount-1 downto 0 do
       begin
        showMessage(uForm.GroupBox2.Components[i].Name);
       end;
    end;
      

  5.   

    ???,GroupBox2.ControlCount ? 
      

  6.   

    GroupBox2.ControlCount 
    GroupBox2.Control[index]  这样
      

  7.   

    TCheckBox.Create(self)  你如果是这样创建的话,那么你这段代码所在的实例(窗体)的compoents就可以找到checkbox如果 checkbox.parent:=xxx;  那么你可以通过XXX的controls找到你所要的checkbox
      

  8.   


    同不懂.
    一个工程中怎么会有两个同名而且互相引用的Form?
      

  9.   

    好吧,我整理下。
    单元一 U1(部分代码): //动态生成checkBox....... implementation 
    uses U2; 
    procedure TForm1.Button1Click(Sender: TObject);
     var m:array[1..4] of TCheckBox; 
     k:integer; 
    begin
     for k:=1 to 4 do  
      begin  with TCheckBox.Create(self) do  
        begin  
       parent:=U2.GroupBox2; 
       caption:='K'+IntToStr(k); 
       name:='qck'+ IntToStr(k); 
       left:=k*30; 
       top:=20; 
    end; 
    end; 
    end;单元二 U2 //获取动态生存的checkBox......
    implementation
    uses U1;
    procedure uForm.Button1Click(Sender: TObject);
    var i:integer;
    begin
     for i:=uForm.GroupBox2.ComponentCount-1 downto 0 do
       begin
        showMessage(uForm.GroupBox2.Components[i].Name);
       end;
    end;
      

  10.   

    把TCheckBox.Create(self)
    改成
    TCheckBox.Create(uForm)
      

  11.   

    implementation
    uses U1;
    procedure uForm.Button1Click(Sender: TObject);
    var i:integer;
    begin
     for i:= GroupBox2.ControlCount -1 downto 0 do
       begin
        showMessage(uForm.GroupBox2.Control[i].Name);
       end;
    end;GroupBox2 下的组件.
      

  12.   

    我不是给你解释了吗TCheckBox.Create(self)  你如果是这样创建的话,那么你这段代码所在的实例(窗体)的compoents就可以找到checkbox 如果 checkbox.parent:=xxx;  那么你可以通过XXX的controls找到你所要的checkbox