红鱼儿

UniDBGrid增加按钮列遇到的问题

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

posted on 2021-07-30 10:06  红鱼儿  阅读(499)  评论(0编辑  收藏  举报