简单问题,但我不会,高手帮忙~!!

 所属目录:Java   |   类型:技术问答   |   时间:2007-05-21
 问题:

怎么用字符串来调用控件?  
   
  比如说:    
   
  s:=edit;  
   
  有没有一种方法可以调用该字符串中的控件啊?  
   
  比如说我有十个同样的控件要进行同样的操作,  
  我用循环来实现,  
  i:integer;  
  s:string;  
   
  s:=edit;  
     
  for   i:=1   to   10   do  
  begin  
  s:=s+inttostr(i);  
  访问(s).??  
  end;  
   
  大概意思就是这样的~!    
   
  能不能实现啊?  
   
 

· 网友精彩回答:

发表者:duanhai

用findcomponent即可  
   
  如:  
   
  var  
      i:   integer;  
      s:   string;  
      t:   tcompent;  
  begin  
      s   :=   edit;  
      for   i   :=   1   to   10   do  
      begin  
          t   :=   findcomponent(s   +   inttostr(i));  
          if   (t   <>   nil)   and   (t   is   tedit)   then  
              tedit(t).text   :=   hello;              
      end;  
  end;  
   
   
  //沒有測試,不知道有沒有拼寫錯誤

发表者:erik

同意楼上的

发表者:xixuemao

procedure   tform1.button1click(sender:   tobject);  
  var  
      i:   integer;  
  begin  
      for   i:=   1   to   3   do  
      begin  
          with   tedit(findcomponent(edit+inttostr(i)))   do  
          begin  
              text:=   edit+inttostr(i);  
          end;  
      end;  
  end;

发表者:lyguo

用list吧  
   
  var  
      mylist:tlist;  
  begin  
      mylist.add(tlabel.create(self));   //加入list  
      mylist.add(tedit.create(self));  
      for   i   :=   0   to   mylist.count-1   do  
      begin  
          if   tcontrol(mylist.items[i])   is   tlabel   then  
     begin  
                  mylist.items[i]).caption:=   ;  
              end;    
          if   tcontrol(mylist.items[i])   is   tedit   then......    
      end;      
  end;  
   
  //删除  
   
  tcontrol(mylist.items[i]).free;  
  mylist.delete(i);  
   
  //用着是方便,不过用起来也要小心。。。。呵呵  
 

发表者:chwdong

其实大家说的已经可以了,但是还有其他思路,比如公布公用方法,然后调用时传入参数即可

发表者:hellolongbin

这个问题,csdn上都快问熟了,一搜一大把  
  procedure   tform1.button1click(sender:   tobject);  
  var   i:integer;  
  begin  
          for   i:=1   to   5   do   tedit(self.findcomponent(edit+inttostr(i))).text:=inttostr(i);  
  end;  
   
  别忘了在窗体上放5个edit控件

.
处理 SSI 文件时出错
© 2006-2008 All Rights Reserved