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.列按鈕機制如期運行!

好經驗就是用來分享的!感謝支持我的朋友們!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM