delphi 让TActionList中的sender指向事发对象

故事这样的:

我有一批按钮需要共同一个点击事件,本来是按最普通的方法,批选了这些按钮,然后双击click事件,然后写代码,最主要的是这句:

iTag: =  TControl(Sender).Tag;

这种情况下这么确实也是没有问题的.

后来为了方便代码管理,我添加了一个TActionList控件,并把上面共用的代码添加到了TActionList里面,然后再给这批按钮设置action属性.结果 iTag总是返回0!

 

后来才得知,这里的sender其实是指向了TAction,并没有指向事发对象,所以很自然的没能取到iTag的值.

 然后是各路大神讨论了一波也没得出解决方法,最后我都放弃了,改回原来的方式 ~~~

然后是第二天,突然有位大哥,居然还掂记着我昨晚的问题,第二天我一出现,立马给了一个解决方案,真是太感谢啦!

iTag:= TAction(Sender).ActionComponent.Tag

用 TAction(Sender).ActionComponent 可以取事发对象.

备注:TActionList的属性disable如果设置成False,则内有所有命令也会被设置为不可用状态.

 

posted @ 2022-12-01 12:03  一曲轻扬  阅读(190)  评论(0)    收藏  举报