uniDBGrid操作栏按钮的实现经验
uniDBGrid支持定义一个操作栏,在里面放置图标按钮,如下图:
具体实现,可以参考这篇文章:uniGUI for Delphi UniDBGrid增加按钮列,写的非常详细。
按这篇文章,我们必须实现Grid的ColumnActionClick事件,这其实是件很麻烦的事情,我们要判断用户点了哪个按钮并为之写逻辑,当在继承实现中,更要多写很多代码。
怎么避免这种情况呢?说来也简单,就是在定义列按钮的时候,uniGUI支持Action,我们把具体的操作,通过Action实现,然后联接到列按钮上,就不用写ColumnActionClick事件代码了。
如上图,为第一个按钮定义actAddRow操作。
目前的1551版本存在一个Bug,就是这样定义后,我们还要实现空的
procedure TCustomBillForm.UniDBGrid1ColumnActionClick(Column: TUniDBGridColumn; ButtonId: Integer); begin inherited; //这里必须有,不然不执行列按钮联接的Action。 1551版本,是bug. //这里不用处理,列按钮对应的Action会被执行. end;
这样实现后,对于这个窗口的子类来说,我们只要实现对应的Action,或者不实现,就用基类的Action,列按钮就如期运行了!
总结:
1.为列按钮定义Action
2.实现空的1ColumnActionClick
3.列按钮机制如期运行!
好经验就是用来分享的!感谢支持我的朋友们!