用tag属性吧
var
  i:integer;
begin
  for i:=0 to 10 do
   begin
   with tedit.create(self) do
     begin
      parent:=GroupBox1;
      name:='edit'+inttostr(i+1);
      left:=2+aleft;
      width:=43;
      top:=10;
      tag:=i;
      text:='wwwww';
     aleft:=left+width;
    end;
   end;
end;var
aleft,i:integer;
begin
  for i:=0 to 10 do
    begin
      with tlabel.create(self) do 
          begin
             parent:=GroupBox2;
              for j:=0 to GroupBox1.controlscount-1 do
               if GroupBox1.Controls[j] is TEdit then
                  if TEdit(GroupBox1.Controls[j]).tag=i then
              caption:=TEdit(GroupBox1.Controls[j]).text;
              left:=2+aleft;
              width:=98;
             top:=10;
             
            aleft:=left+width;
          end; 
   end;
end;

解决方案 »

  1.   

    caption:=Tedit(groupbox1.FindComponent('edit'+inttostr(i+1))).Text;
      

  2.   

    同意 mfc2001(拔剑茫然心四顾) 
    另外,放在同一个循环里面也行啊
      

  3.   

    恐怕不行吧,你怎么能保证第一个就是edit1,难道他设计时不可能放edit在上边
      

  4.   

    呵呵,没有其他的EDIT,用第二句caption:=Tedit(groupbox1.FindComponent('edit'+inttostr(i+1))).Text; 
     
    简单,
    greenwaterbluesky的循环可以吗?试了一下好象有错,再看看吧,既然是高手应该没错的,
    如果是在两个FORM里呢?
    TLABEL是在第二个FORM 里面生成的
    应该差不多吧,快完成了:)
      

  5.   

    动态产生的报表:
    TQReport.create(self);
    接下来要动态生成BAND
    如何在生成的BAND下面写
    parent这一句?
      

  6.   

    不管是先生成的还是动态生成的,都应该有一个句柄之类的东西,比如生成一个控件数组获或一个列表来存放这些对象,才好操作他们,有了这些,相信不会太难,其实,容器类中有一个Components[]数组,生成的所有组件都在这个里面。