故事这样的:
我有一批按钮需要共同一个点击事件,本来是按最普通的方法,批选了这些按钮,然后双击click事件,然后写代码,最主要的是这句:
iTag: = TControl(Sender).Tag;
这种情况下这么确实也是没有问题的.
后来为了方便代码管理,我添加了一个TActionList控件,并把上面共用的代码添加到了TActionList里面,然后再给这批按钮设置action属性.结果 iTag总是返回0!
后来才得知,这里的sender其实是指向了TAction,并没有指向事发对象,所以很自然的没能取到iTag的值.
然后是各路大神讨论了一波也没得出解决方法,最后我都放弃了,改回原来的方式 ~~~
然后是第二天,突然有位大哥,居然还掂记着我昨晚的问题,第二天我一出现,立马给了一个解决方案,真是太感谢啦!
iTag:= TAction(Sender).ActionComponent.Tag
用 TAction(Sender).ActionComponent 可以取事发对象.
标签:sender,TActionList,iTag,delphi,事发,TAction,Sender From: https://www.cnblogs.com/yoooos/p/16941043.html