為一個UniDBGrid增加一個按鈕列,如下圖:
點擊操作列里面的按鈕,可以增加一行,刪除一行,編輯一行,效果還是不錯的。具體方法可以參考:uniGUI for Delphi UniDBGrid增加按鈕列。
實現方法不難,但是在實際使用過程中,用戶發現,有時候點這幾個按鈕不起作用。我也是費了半天勁,終於測試出,目前的uniGUI 1549版本,確實存在這樣的問題,即,當用戶增加一行,並且不Post的情況情況下,點擊列按鈕,不起作用。我跟蹤代碼,原來沒有執行OnColumnActionClick。
試着做了下如下的代碼,就是當用戶點這個單元格的時候,先做一個Post,效果還可以,下面是CellClick事件的代碼:
procedure TForm1.UniDBGrid1CellClick(Column: TUniDBGridColumn); begin inherited; if Column.FieldName='button' then if DetailDataSet.State in [dsInsert] then DetailDataSet.Post; end;
這里有個潛在的問題,當每個字段有檢查的時候,如必須填值,則Post會產生一個異常,自己看着辦吧。