代码如下:
procedure TForm1.Button1Click(Sender: TObject);
var
i : integer;
bn : TButton;
begin
for i := 1 to 6 do
begin
Bn := TButton.Create(Form1);
// bn.Parent := Form1;
bn.Left := 20 * i;
Bn.Width := 20 ;
InsertControl(bn);//加这一句
end;
end;
当这个事件激发后,会动态创建6个TButton ,现在的问题是,我要控制这六个按扭,比如我单击这六个中的第一个弹出对话框 显示“这是第一个TButton”,如果 我单击这六个中的第二个弹出对话框 显示“这是第二个TButton”。这样 我该怎么做?
VCL 控件中都有个Tag属性 hehe^^
你在建立时付个值不就得了
for i := 1 to 6 do
begin
Bn := TButton.Create(Form1);
Bn.Tag := i; //<<-- 关键哦
// bn.Parent := Form1;
bn.Left := 20 * i;
Bn.Width := 20 ;
InsertControl(bn);//加这一句
end;
然后在OnClick里判断不就OK啦
CDSoftwareWj(95927) :很聪明
顶
是要赋值,但我建意楼主给它的name属性赋值.
procedure TForm1.Button1Click(Sender: TObject);
var
i : integer;
bn : TButton;
begin
for i := 1 to 6 do
begin
Bn := TButton.Create(Form1);
// bn.Parent := Form1;
bn.Left := 20 * i;
Bn.Width := 20 ;
Bn.Name := btn+IntToStr(i);
InsertControl(bn);//加这一句
end;
end;
然后调用到的时候只用判断它的name就可以了.
写好一个事件(过程) 例如:
procedure buttonClick(Sender: TObject);
begin
代码
end;
bn.Onclick := buttonClick;
同意楼上 hehe^^