一个Panel中有N个控件,动态创建的,而且类型不一,可能有Delphi自带的也有三方的,我现在要动态给这些控件赋OnMouseDwon事件,笨方法是遍历每个控件,然后判断:
if Sender.ClassName='TButton' then
TButton(sender).OnMouseDown := MyOnMouseDown;
但是,控件太多,类型也不一致,还有三方的,不可能写太多判断语句,另外,虽然这些可视控件都是从TWinControl类继承,但TWinControl类并没有把OnMouseDown事件公布出来,根本就不能调用TWinControl(sender).OnMouseDown方法来赋值,请教大家,有没有通用的好方法可以实现,多谢!控件类继承delphi
if Sender.ClassName='TButton' then
TButton(sender).OnMouseDown := MyOnMouseDown;
但是,控件太多,类型也不一致,还有三方的,不可能写太多判断语句,另外,虽然这些可视控件都是从TWinControl类继承,但TWinControl类并没有把OnMouseDown事件公布出来,根本就不能调用TWinControl(sender).OnMouseDown方法来赋值,请教大家,有没有通用的好方法可以实现,多谢!控件类继承delphi
解决方案 »
- 如何通过程序修改ini文件
- 谁给我发一个senkey32.pas这个文件
- 请问代码 TADOQuery.Properties['Update Criteria'].Value := 0; 是什么意思,谢谢!
- ◆◆◆◆◆妹妹中考,散分祝福◆◆◆◆◆
- 今天面试,希望能通过!散分!
- 为什么我用StringToWideChar总不成功呢?
- 如何将TABLE中的DATABASENAME设置为工作组为YIFEI,计算机名为2000SERVER的D盘目录CG,这个目录如何写?
- 请问CreateMutex创建互斥体怎么使用?
- 如何滚动listview?
- 高手请进,安装程序问题
- ListView的OwnerDraw=ture 時,CheckBoxs顯示問題???
- delphi7+windows7如何控制word
TButton(Sender).OnMouseDown := MyOnMouseDown;
作弊方法。。
感谢回复!这种方法我之前试过,容易引起内存异常,因为很多其它控件并非TButton类,经常引起地址错误,治标不治本,不可取。
感谢回复!这种方法我之前试过,容易引起内存异常,因为很多其它控件并非TButton类,经常引起地址错误,治标不治本,不可取。如果你用D2005+,可以试试classhelper,将OnMouseDown公布出来