控件名(name)用变量代替(50分)

  • 主题发起人 主题发起人 menyan
  • 开始时间 开始时间
M

menyan

Unregistered / Unconfirmed
GUEST, unregistred user!
如何用变量描写控件名,如
var
n:integer;
begin
n:=1;
Edit[n].text:='aaa';
end;
则控件TEdit1显示'aaa'。
 
方法一:用控件数组
方法二:用FindComponent
 
type
TEditArray = array of TEdit;
var
ArrayEdit: TEditArray;
ArrayName: array [0..3] of String;
i: Integer;
begin
ArrayName[0] := 'Sam';
ArrayName[1] := 'Peter';
ArrayName[2] := 'Kent';
ArrayName[3] := 'Murry';

SetLength(ArrayEdit, 4);
ArrayEdit[0] := Edit1; //原来的控件名
ArrayEdit[1] := Edit2; //原来的控件名
ArrayEdit[2] := Edit3; //原来的控件名
ArrayEdit[3] := Edit4; //原来的控件名
for i := 0 to 3 do
begin
ArrayEdit.Name := ArrayName;
end;
 
用数组啊,应该可以的。。
 
FindComponent很简单的,他返回找到控件的指针。例如:Edit1: TEdit;
TEdit(FindComponent('Edit1')).Text := 'Welcome';没有找到匹配控件,返回值为空。
 
Sorry,整理帖子整糊涂了。
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
896
SUNSTONE的Delphi笔记
S
S
回复
0
查看
873
SUNSTONE的Delphi笔记
S
后退
顶部