Delphi中 如何将控件名称+变量

比如:我有10个Edit控件,Edit.name值分别是Edit1,Edit2,Edit3.。。。
我想分别将这10个Edit控件的Text赋值为1,2,3。。。
事件如下:
procedure TTmCtlSd.FormCreate(Sender: TObject);
var i:integer;
begin
for i:=1 to 10 do
Edit?.text:=inttostr(i);
end;

?这里怎么写,怎样分别表达Edit1.text ,Edit2.text ,Edit3text.。。。
写少了一个End;
忽略这个错误
最新回答
锁骨草莓印

2024-11-04 00:19:29

像这样做的话只能这样:
定义一个控件数组Jedit

var
Form1: TForm1;
Jedit:Array[0..9] of TEdit;
implementation
{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var i:integer;
begin
Jedit[0]:=Edit1;
Jedit[1]:=Edit2;
Jedit[2]:=Edit3;
Jedit[3]:=Edit4;
Jedit[4]:=Edit5;
Jedit[5]:=Edit6;
Jedit[6]:=Edit7;
Jedit[7]:=Edit8;
Jedit[8]:=Edit9;
Jedit[9]:=Edit10;
for i:=0 to 9 do
begin
Jedit[i].Text:=inttostr(i+1);
end;
end;

这样的话就可以了,不过对于你的这个程序,这样写也是很麻烦,若后边还有的话,用起来还比较方便。不知答案是否满意?
我是女神哦买噶

2024-11-04 00:43:30

var
i :Integer;
begin
for i := 1 to 10 do
(FindComponent('Edit'+inttostr(i)) as TEdit).Text := inttostr(i);
end;