各位达人:
用create方法创建了一个几个动态按钮怎么相应?
......
var
button:TButton;
begin
for i:=1 to 5 do
begin
button:=TButton.Create(nil);
......
end;
end;
请问:
这里创建了5个按钮控件
1 怎么来编写代码相应鼠标的单击事件?
2 这5个按钮,他们的名字是什么?
谢谢!
用create方法创建了一个几个动态按钮怎么相应?
......
var
button:TButton;
begin
for i:=1 to 5 do
begin
button:=TButton.Create(nil);
......
end;
end;
请问:
这里创建了5个按钮控件
1 怎么来编写代码相应鼠标的单击事件?
2 这5个按钮,他们的名字是什么?
谢谢!
解决方案 »
- 关于Delphi+OpenGL编程问题,菜鸟高手都请进!
- Delphi中使用API ReadFile 的一个问题
- sql模糊查找?
- teechart 用选中状态(小方块)表示出选中的曲线 ??
- 求一个控件
- 请教星级大师一个问题?unit1 ,form1,tform1的关系,现在有几个自制过程或函数,应该放在什么地方进行声明?在单元中声明和在Tform1中声
- 有多少人是在用BDE做开发的?
- 我想只要form中有变化(大小,上面的组件等被点击)就触发过程 那过程应放在什么地方
- 今天结贴,分数只给一个人!如何列出一个指定的文件夹下的所有子文件夹名。
- 求maxlength-1 长的子串的算法
- 寻求合适的表格控件。具体要求见内容!
- 为什么用扫描仪控件扫描的图片会变大?
procedure MyButtonClick(Sender: TObject);
begin
if Sender is Tbutton then
Tbutton(Sender)//该干嘛干嘛
end;创建按钮的时候
Button.OnClick:=MyButtonClick;
如果要区分不同的按钮可以在创建的时候在Button.tag加个标识
用showmessage(Button.name);看看名称
button:TButton;
begin
for i:=1 to 5 do
begin
button:=TButton.Create(nil);
button.name := 'a'+ inttostr(i); //这样给控件个名字
case i of
1: Button.OnClick:=MyButton1Click; //这样给按钮给个事件
2: Button.OnClick:=MyButton2Click; //这样给按钮给个事件
.
.
.
end;
......
end;
end;
2: Button.OnClick:=MyButton2Click; //这样给按钮给个事件 __________________________
如果有100个按钮的话怎么办?事先写100个MyButtonClick?
{ Private declarations }
procedure ButtonClick(Sender: TObject);
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.ButtonClick(Sender: TObject);
begin
//
end;procedure TForm1.Button2Click(Sender: TObject);
var
button:TButton;
I:Integer;
begin
for i:=1 to 5 do
begin
button:=TButton.Create(nil);
....
button.Tag:=I;
button.OnClick:=ButtonClick;
end;
end;
如果你要静态的拖拉100个按钮,你是不是要托100次?
如果每个按钮相应的事件都不一样,你是不是要写100次?
楼主自己都不考虑清楚事件的全部,就打100的比方.
我是说 hmzgz81 的例子不怎么好
case i of
1: Button.OnClick:=MyButton1Click; //这样给按钮给个事件
2: Button.OnClick:=MyButton2Click; //这样给按钮给个事件
end;
第2点如果你创建的时候没有给它们命名,它们就没有名字。
共用处理过程写法:
procedure TForm1.ButtonClick(Sender: TObject);
begin
//..
case (Sender as TButton).Tag of
1: doFunc1();
2: doFunc2();
...
n:
end;
end;
哈,看错了,那就是说你啦,别生气噢