重分,如何动态创建一组按扭,并能进行按扭的事件触发。解决后,给500分!

wuxuan 2002-11-15 11:59:44
这一组按钮的功能是一致的,只不过传递的参数不一样。

例如,计算器的按扭功能实现。动态创建按钮。


源码、方法等。

在线等待。
...全文
134 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
zsy_good 2002-11-15
  • 打赏
  • 举报
回复
(sender as Tbutton).tag 就知道是哪个button触发的事件
这里我写快了,应该是button
zsy_good 2002-11-15
  • 打赏
  • 举报
回复
创建控件数组就可以乐
var

Buttons : array[0..12] of TButton;
i : integer;
begin
for i := 0 to 12 do
begin
Buttons[i] := TButton.create;
Buttons[i].parent := form1;
Buttons[i].top := 200* (i+1);
Buttons[i].caption := inttostr(i);
Buttons[i].tag := i+1; //在调用的时候判断Tag就知道了
Buttons[i].onclick := 处理的函数
end;
//在处理的函数里面用
(sender as Tedit).tag 就知道是哪个button触发的事件
//随手写的你调试一下

lqdmafeng 2002-11-15
  • 打赏
  • 举报
回复
太清楚了,,,
xiangyun123 2002-11-15
  • 打赏
  • 举报
回复
楼上已经说了,但也可用ActiveControl方法指定激活的按钮。
zxfsdbj 2002-11-15
  • 打赏
  • 举报
回复
同一楼上,但是要注意uses中必须包含stdctrls单元,否则不能编译,呵呵!
w_sabre 2002-11-15
  • 打赏
  • 举报
回复
楼上各位已经写得很清楚了。这个问题在Delphi里不难。在VC里怎么样就不知道了。
shuyi 2002-11-15
  • 打赏
  • 举报
回复
procedure TForm1.FormCreate(Sender: TObject);
var
i:integer;
AButton:TButton;
begin
for i:=0 to 9 do
begin
AButton:=TButton.Create(application);
Abutton.Parent:=form1;
AButton.Top:= 8;
AButton.Left:=i*32 + 8;
AButton.Height:=25;
AButton.Width:=25;
AButton.Tag:=i;
AButton.Name:='btn' + IntToStr(i);
AButton.Caption:=IntTOStr(i);
AButton.OnClick:=btnClick;
end;
end;

自己在private里面定义一个procedure
procedure btnClick(Sender:TObject);

procedure TForm1.btnClick(Sender: TObject);
begin
showmessage(TButton(sender).caption);
end;

为了方便我只写了0到9你还可以加上*和/ 等等,
wuxuan 2002-11-15
  • 打赏
  • 举报
回复
Myonclick 过程怎样定义,我定义的过和左右不匹配
hongqi162 2002-11-15
  • 打赏
  • 举报
回复
1)procedure tform1.button2click(sender:tobjet);

  2)var

  3) button:tbutton;

  4) begin

  5) button:tbutton.cerate(self);

  6) button.parent=panel1;

  7) button.lleft=0;

  8) button.top=0;

  9) button.caption:='ok';

10) button.onclick:=onclick;

  11) end;
My_first 2002-11-15
  • 打赏
  • 举报
回复
要是很多你就加个for
My_first 2002-11-15
  • 打赏
  • 举报
回复
var
mybutton:Tbutton;
Begin
mybutton:=Tmybutton.create(self);
mybutton.left:=100;
mybutton.top:=20;
mybutton.caption:+'mybutton';
mybutton.onclick:=Myonclick; //自定义的过程,这样写也可以button1click;
end;
wuxuan 2002-11-15
  • 打赏
  • 举报
回复
我在delphi中是菜鸟,但是我在VC中已经两个星了。

所以我有分给,如果解决肯定给500分,决不食言。


wait.....
AirTear 2002-11-15
  • 打赏
  • 举报
回复
楼楼上的兄弟说的很对,我在程序中就是这么用的!
zhangchao_7622 2002-11-15
  • 打赏
  • 举报
回复
关注。

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧