有10个label,onclick事件想为这样:color:=colordialog.color;我知道可以每个label都写一次onclick。但是如何写一个

  • 主题发起人 主题发起人 ISY
  • 开始时间 开始时间
I

ISY

Unregistered / Unconfirmed
GUEST, unregistred user!
有10个label,onclick事件想为这样:color:=colordialog.color;我知道可以每个label都写一次onclick。但是如何写一个procedure,把10个label的onclick设置为这个procedure,就可以完成和10个onclick相同的功能呢?(100分)<br />有10个label,onclick事件想为这样:color:=colordialog.color;
我知道可以每个label都写一次onclick。
但是如何写一个procedure,把10个label的onclick设置为这个procedure,就可以完成和10个onclick相同的功能呢?
 
反LABEL的ONCLICK事件名设为这个PROCEDURE就可以了.
 
label1的写好后,label2、label3....的事件在OnClick的下拉类表中选择Label1Click的就可以了。
 
to MichaelZhu
不好意思,我的意思是说这个procedure该怎么写。

jrq
如果label1的onclick这么写:
label1.color:=colordialog.color
label2、label3....的事件在OnClick的下拉类表中选择Label1Click的话,label2的onclick事件只会改变label1.color了。
 
(sender as label).color:=colordialog.color
 
procedure LabelClick(Sender: TObject);
begin
if ColorDialog.Execute then
TLabel(Sender).Color:=ColorDialog.Color
end;
 
我想这个procedure的内容应该是
1、获得当前的组件(如果是label1,就获得label1;如果是label2,就获得label2)
2、当前的组件的color:=colordialog.color
组件 onclick事件 onclick结果
label1 procedure x label1.color:=colordialog.color
label2 procedure x label2.color:=colordialog.color
. procedure x .
. procedure x .
. procedure x .
label10 procedure x label10.color:=colordialog.color
 
我觉得在一个窗体上可能有几种控件,因此应先判断是何种控件,因此我想这么写好一点:
Procedure LabelClick(Sender:TObject);
begin
if Sender is TLabel then
ShowMessage(TLabel(Sender).Caption);
end;
应该可以吧。
 
多谢各位,这里问题回答的好快啊。
 
有没有搞错,事件本身就是LABEL调用的,用的着判断是不是LABEL?
 
.........
private
{ Private declarations }
public
procedure Label_Set(Sender: TObject); //自定义的
{ Public declarations }
end;
..........
..............
//自定义实现
procedure TForm1.Label_Set(Sender: TObject);
begin
Tlabel(Sender).Color:=colordialog.color;
end;
//// 调用
procedure TForm1.Label1Click(Sender: TObject);
begin
Label_Set(sender);
end;

procedure TForm1.Label2Click(Sender: TObject);
begin
Label_Set(sender);
end;
..............
.............
其余的labelclick都调用Label_Set(sender); 就可以了。
 
哦,已经结贴了啊??
 
Procedure LabelClick(Sender:TObject);
begin
if Sender is TLabel then
Tlabel(self.activecontrol).Color:=colordialog.color
end;
 

Similar threads

D
回复
0
查看
878
DelphiTeacher的专栏
D
D
回复
0
查看
846
DelphiTeacher的专栏
D
D
回复
0
查看
797
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部