请指教 如果建立20个同种控件 处理时如何用循环控制他们 有类似数组的方法么(10分)

  • 主题发起人 主题发起人 privateer
  • 开始时间 开始时间
P

privateer

Unregistered / Unconfirmed
GUEST, unregistred user!
谢谢 请高手指教
 
var
Control:Array[1..20] of TButton;
I:Integer;
begin
for I:=1 To 20 do
begin
Control:=TButton.Create(Application);
Control.Parent:=Application.MainForm;
Control.Left:=I*100;
Control.Caption:=IntToStr(I);
end;
end;
 
十分感谢 在窗体类 的定义中可否这么做 同时又可以使用 object inspector
 
//在窗体类 的定义中可否这么做
当然可以
 
不知道所答是不是所问,贴上来:

TEdit(Form1.FindComponent('Edit'+inttostr(i))).text:='text';
 
to 菜中菜 好像有点差不多 可否详细些

我的意思是这样 在窗体上手工添加了20个richedit 控件 当我在程序中

要对所有控件某个属性赋值时,如何用循环来控制
 
不知道我的理解对不对
比如有10个按钮(button[1-10]),把CAPTION依次改为1到10:
procedure TForm1.OK_ButtonClick(Sender: TObject);
var i:integer;
begin
for i:=1 to 10 do
TButton(Form1.FindComponent('button'+inttostr(i))).caption:=inttostr(i);
end;

end.
 
implementation
{$R *.DFM}
var
xButtons: array [1..20] of TButton;
// ...
procedure TForm1.FormCreate(Sender: Tobject);
var
I: Integer;
begin
for I:=1 to 20 do begin
xButtons:= TButton(FindComponent('Button'+ IntToStr(I)));
xButtons.Tag:= I;
end;
end;

以后使用时就以 xButtons[X] 来引用你的按键,按键例程里可以这样
procedure TForm1.ButtonClick(Sender: Tobject);//假定这20个按键的OnClick都连在这里
var
xButton: TButton;
ButtonID: Integer;
begin
xButton:= (Sender as TButton);
ButtonID:= xButton.Tag;
// ...
end;
 
很清楚了
发分吧
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部