为一个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会产生一个异常,自己看着办吧。