有人在吗?请问将控件名称的字串转为指向控件的函数是什么?急急 我要重排窗体中的一大堆编辑框组件,想在循环体中使用。 如: var aObjName: array [0..9] of string; i : integer; begin aObjName[0] := 'EdtName'; aObjName[1] := 'EdtAddr'; . . . For i:= 0 to 9 do begin XXX(aObjName[i]).Left := 12; . . . 请问这个函数是什么? 我查看Delphi6的帮助,但是找不出函数列表的主题,我以前曾用过,但是想不起来了。 说不定不是函数,或许方法也不一定, 有人知道吗, 急啊。 我是一个新手,正在学习Delphi中,请大家多多相助,不甚感激。 

解决方案 »

  1.   

    将这行
    aObjName: array [0..9] of string
    改为
    aObjName: array [0..9] of TEdit
    这样使用:
    aObjName[1] := EdtAddr;
    别忘了给分呀!
      

  2.   

    以下是例子,看看吧
    for i:=0 to componentcount -1 do
      if components[i].name='aobjname' then 
         (components[i] as tedit).left:=12;
      

  3.   

    第一位的答复我也想过,但以前我是用了一个函数的,记录的笔记本不在身边.
    所以一直还是想着以前的办法.不过,看来似乎还是这样好,用掉的内存更少吧,呵呵.
    第二位的,不是很好,那我要在循环中再用这个循环来找出自己想要的控件,太浪费了点.不过,第一种还是美中不足,若我还有其它的控件呢,不单是TEdit,如Memo等呢,是不是要用变体变量?有谁知道那个函数吗?
      

  4.   

    对了,是不是可以这样?
    var aObjName : array [0..9] of TObject;
    试试先.
    可以的话回来给分.
      

  5.   

    将字符串转为控件的函数是FindComponent(字符串)var 
    aObjName: array [0..9] of string; 
    i : integer; 
    begin 
    aObjName[0] := 'EdtName'; 
    aObjName[1] := 'EdtAddr'; if (FindComponent(aObjName[0]) is TEdit) then
     (FindComponent(aObjName[0]) as TEdit).text:='I'm Found';
      

  6.   

    我试了一下不过要改为:
    var 
      aObjList: array[0..9] of TCustomEdit;不然无法访问aObjList[i].left属性,编译无法通过。
    谢谢第一位,
    也谢谢各位的热情,非常感谢
    我给linuxiaowei和oracel_lover两人各加五分。
    我是刚注册的,分不多,可能还用得着,请恕我吝啬了:-)