如何创建控件数组?(60分)

  • 主题发起人 Delphior
  • 开始时间
D

Delphior

Unregistered / Unconfirmed
GUEST, unregistred user!
如何创建控件数组?
即创建同一类型的控件,并可用数组形式访问,包括设计和运行时的两种创建方法
比如说:text[n].text,label[n].caption等等
我记得vb好像可以,但是delphi中怎样实现呢?最好有代码,谢谢!
 
没有!
我是通过控件名称解决的
如text_1,text_2
寻找的时候把数字分离出来
 
var
F : array[0..10] of TForm;
I : Integer;

begin
for I := 0 to 10 do
begin
F := TForm.Create(nil);
F.Caption := IntToStr(I);
end;
end;

begin
for I := 0 to 10 do
begin
F.Free;
F := nil;
end;
end;
 
很简单的。

lab: array[1..10] of TLabel;
i: integer;

for i:= 1 to 10 do
begin
Lab := TLabel.Create(self);
Lab.Parent := Form1;
Lab.Visible := true;
Lab.top := 10;
Lab.Left := i*10;
Lab.Caption := inttostr(i);
end;
 
var A:array of Tbutton;
i:integer;
begin
setlength(A,10);
for i:=0 to 9 do
begin
A:=Tbutton.create(from1);
A.parent:=form1;
A.top:=20+i*50;
A.left:=20+i*50
A.width:=50;
A.height:=50;
A.show;
end;

 
LabelArray:array [0..100] of TLabel;

LabelArray[0].Create(self);
..............
............
设置属性
 
var
// 声明
text : array[0..100] of TEdit;
begin
// 创建( 如果要显示在窗口上,把nil改为父控件名,然后再设置parnet就行了)
text[0] := TEdit.Create(nil);
text[0].Text := 'it is a test';
// .... 同样创建其他的控件,也可用for循环做 ....
end;
 
设计的时候呢?有没有就在设计界面时就能定义的?
 
设计界面的时候不行!老老实实拖100个控件进去吧!
 
1. 动态生成控件
var
e:array of TEdit;
procedure TForm1.FormCreate(Sender: TObject);
var
i,n:integer ;
begin
n:=10;
setlength(e,n);
for i:=0 to n-1 do
begin
e:=TEdit.create(self);
e.parent:=self;
e.visible:=true;
e.left:=10;
e.top:=10+30*i;
e.width:=50;
e.height:=20;
end;

end;
 
顶部