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.列按鈕機制如期運行!
好經驗就是用來分享的!感謝支持我的朋友們!
