我自己用动态数组写了控件但是有问题,我找不出,怎样才能正确创建动态的控件,
包括怎样删除掉所创建的控件?procedure TForm1.BitBtn1Click(Sender: TObject);
var
i,d,j:integer;
editm:array of tedit;
begin
d:=0;
j:=strtoint(num.text);
setlength(editm,j);
for i:=1 to j do
begin
editm[i]:=tedit.Create(self);
editm[i].Parent:=ScrollBox1;
editm[i].Width:=120;
editm[i].Height:=20;
editm[i].Left:=0;
editm[i].Top:=0+d;
editm[i].Name:='edit'+inttostr(i);
editm[i].Text:='edit'+inttostr(i);
editm[i].Visible:=true;
d:=d+20;
end;
end;
包括怎样删除掉所创建的控件?procedure TForm1.BitBtn1Click(Sender: TObject);
var
i,d,j:integer;
editm:array of tedit;
begin
d:=0;
j:=strtoint(num.text);
setlength(editm,j);
for i:=1 to j do
begin
editm[i]:=tedit.Create(self);
editm[i].Parent:=ScrollBox1;
editm[i].Width:=120;
editm[i].Height:=20;
editm[i].Left:=0;
editm[i].Top:=0+d;
editm[i].Name:='edit'+inttostr(i);
editm[i].Text:='edit'+inttostr(i);
editm[i].Visible:=true;
d:=d+20;
end;
end;
解决方案 »
- 请问:哪位有免费的VPN软件,如何设置?VPN需要其他硬件支持吗
- 简单问题,怎样得到chklistbox的多个选中的值?
- 一个简单问题,!!!
- 目录的简单问题(50分送出)
- 如何用TDBGrid 修改表中的内容?
- 在treeview控件怎样设置不同节点用不同的字体?急!!在线等待....
- HELP ME,客户端与服务器的连接问题
- 怎么样在Delphi6中设置DLL的断点调试?
- 如何通过鼠标感知 DBGrid 单元格下记录的字段值?
- 有没有办法在调用exe程序时输入进口参数?如给一个txt文件路径 例:IDo.exe "c:\temp.txt"
- 谁能帮我翻译一下这句话?谢谢
- 郁闷,前途一片黑暗!任职一家小公司,月薪不到1K,散分啦!
edt : TEdit;
begin
edt := TEdit.Create(self);//也可直接写创建在某个控件上比如Form1.Panel1
with edt do
begin
Caption := '确定';
Parent := Form1;
end;
end;
要创建多个的话用循环就可以了!
释放不需要手工,会自动释放的!
//不需要自己释放,当
var
i,d,j:integer;
editm:tedit;
begin
d:=0;
j:=strtoint(num.text);
for i:=1 to j do
begin
editm :=tedit.Create(self);
with editm do
begin
editm.Parent:=ScrollBox1;
editm.Width:=120;
editm.Height:=20;
editm.Left:=0;
editm.Top:=0+d;
editm.Name:='edit'+inttostr(i);
editm.Text:='edit'+inttostr(i);
editm.Visible:=true;
d:=d+20;
end;
end;
改为
editm[i].Parent:=Form1;
试试看
Edit1: TEdit;
begin
Edit1 := TEdit.Create(self);
Edit1.Parent := Form1;
Edit1.Visible := True;
Edit1.Height := 20;
Edit1.Top := 296;
Edit1.Width := 121;
Edit1.Left := 56;
Edit1.Text := 'Edit1';
end;
你的程序都是对的,不过循环语句应该是:for i:=0 to j-1;
呵呵,动态数组不支持更改下标的!!!!!你要删除就用:
for i:=0 to j-1 do
begin
editm[i].free;
end;
edt : TEdit;
begin
edt := TEdit.Create(self);//