有人在吗?请问将控件名称的字串转为指向控件的函数是什么?急急 我要重排窗体中的一大堆编辑框组件,想在循环体中使用。 如: 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中,请大家多多相助,不甚感激。
aObjName: array [0..9] of string
改为
aObjName: array [0..9] of TEdit
这样使用:
aObjName[1] := EdtAddr;
别忘了给分呀!
for i:=0 to componentcount -1 do
if components[i].name='aobjname' then
(components[i] as tedit).left:=12;
所以一直还是想着以前的办法.不过,看来似乎还是这样好,用掉的内存更少吧,呵呵.
第二位的,不是很好,那我要在循环中再用这个循环来找出自己想要的控件,太浪费了点.不过,第一种还是美中不足,若我还有其它的控件呢,不单是TEdit,如Memo等呢,是不是要用变体变量?有谁知道那个函数吗?
var aObjName : array [0..9] of TObject;
试试先.
可以的话回来给分.
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';
var
aObjList: array[0..9] of TCustomEdit;不然无法访问aObjList[i].left属性,编译无法通过。
谢谢第一位,
也谢谢各位的热情,非常感谢
我给linuxiaowei和oracel_lover两人各加五分。
我是刚注册的,分不多,可能还用得着,请恕我吝啬了:-)