Delphi 关于动态生成控件的问题

2024-11-06 11:27:43
推荐回答(1个)
回答(1):

var
I :Integer = 1;
F :TextFile;
Path :String;

procedure TForm1.Button1Click(Sender: TObject);
var
B :TButton;
E :TEdit;
begin
E := TEdit.Create(Self); //动态创建Tedit控件
E.Parent := Self; //指定edit控件的父类是窗体。
E.SetBounds(100 * I,40,50,20);
E.Text := IntToStr(I); //初始控件的text属性.
E.Name := 'E' + IntToStr(I); //重命名控件
E.Tag := I; //控件的标识信息.

Path := 'dynamiceditN.txt';
B := TButton.Create(Self);
B.Parent := Self;
B.SetBounds(100*I,20,40,20);
B.OnClick := ButtonOnClick;
B.Name:='B' + IntToStr(I);
B.Tag := I;
Inc(I);
end;

procedure TForm1.ButtonOnClick(Sender: TObject);
var J:Integer;
begin
try
AssignFile(F,path);
if not FileExists(Path) then begin //判断是否存在文件
ReWrite(F); //如果不存在就建立一个空文件.
end else Append(F);//如果存在就以追加方式打开文件.
for J := 0 to Self.ControlCount -1 do //遍历窗体所有控件.
if (Self.Controls[J] is TEdit) and (Self.Controls[J].Tag = TButton(Sender).Tag) then begin
WriteLn(F,TEdit(Self.Controls[J]).Text); //条件1:是否是TEdit控件.条件2:是否与按钮相对应
Break; //找到一个后就跳出.因为只是单击一个按钮一下.
end;
finally
CloseFile(F); //关闭文件.
end;
end;
够明白吗?.在Delghi7已经给你测试过了.以上代码属于个人所写..