var EditArray: array of TEdit;procedure DestroyEdits; var I: Integer; begin for I := 0 to Length(EditArray) - 1 do EditArray[I].Free; EditArray := nil; end;procedure CreateEdits(aParent: TWinControl; aNum: Integer); var I: Integer; begin DestroyEdits; SetLength(EditArray, aNum); for I := 0 to aNum - 1 do begin EditArray[I] := TEdit.Create(aParent); with EditArray[I] do begin Top := 25 * I + 5; Parent := aParent; end; end; end;
for i:=1 to 10 do begin with TEdit.create(nil) do begin parent:=form1; left:=10; top:=i*20; name:='myedit'+inttostr(i); text:='myedit'+inttostr(i); tag:=i; end; end; //获得text for i := 1 to 10 do begin with TEdit(FindComponent('myedit' + IntToStr(i))) do begin showmessage(text); end; end;
MyEdit:=TEdit.Create(Self); MyEdit.Parent:=Form1;
因为你的另一个窗口是自动创建了,你需在Project=>Project Options 中选择Forms 属性页面中,把其不想自动创建的窗口从(Auto_Create forms => Available forms)即可,当然主窗体必须留在Auto_Create forms 中
e.parent:=form1;
e.top:=..
e.left:=...
设置属性(省略)e.text是获得输入框中的文本
Var
MyEdit:TEdit;
然后动态生成,如下
....
MyEdit:=TEdit.Create(Self); //Self表示这个Edit放在哪个窗体上
MyEdit.Parent:=Self; //必须加这句,否则看不到
....
然后获取文本,如下
....
EdtStr:=MyEdit.Text; //事先申明字串变量EdtStr
....
EditArray: array of TEdit;procedure DestroyEdits;
var
I: Integer;
begin
for I := 0 to Length(EditArray) - 1 do
EditArray[I].Free;
EditArray := nil;
end;procedure CreateEdits(aParent: TWinControl; aNum: Integer);
var
I: Integer;
begin
DestroyEdits;
SetLength(EditArray, aNum);
for I := 0 to aNum - 1 do
begin
EditArray[I] := TEdit.Create(aParent);
with EditArray[I] do
begin
Top := 25 * I + 5;
Parent := aParent;
end;
end;
end;
begin
with TEdit.create(nil) do
begin
parent:=form1;
left:=10;
top:=i*20;
name:='myedit'+inttostr(i);
text:='myedit'+inttostr(i);
tag:=i;
end;
end;
//获得text
for i := 1 to 10 do begin
with TEdit(FindComponent('myedit' + IntToStr(i))) do
begin
showmessage(text);
end;
end;
MyEdit.Parent:=Form1;