肯定不会有问题的。
极有可能是你进行了某些对数据库的操作(比如说移动了数据库指针)之后才从有DBGrid的窗体切换到另外一个窗体,此时数据并不处于编辑状态,因此不会显示对话框,请你检查你的程序。

解决方案 »

  1.   

    原因是你的修改并没有生效,就是传递到后台;
    如果在同一个窗体,当DBGRID失去焦点的时候自动更改后台数据;
    而在另外窗体,并没有传递到后台,你可以先点一下DBGRID窗体,然后在点
    另一个窗体的按钮?
      

  2.   

    Lock Type设置都为ltBatchOptimistic,一个是fsMDIForm窗体,另一个是fsMDIChild窗体。
      

  3.   

    是这样的:
    当你在DBGrid1上作修改后,如果本窗体的焦点还在DBGrid1上起始位置时,相应的Dataset的Modify仍为FALSE。
    如果button和dbgrid1在同个窗体,dbgrid1焦点会发生变化,Modify=TRUE;
    如果button和dbgrid1不在同个窗体,dbgrid1焦点没有发生变化,Modify=FALSE;
      

  4.   

    那有没有办法可以解决button和dbgrid1不在同个窗体,button可以知道Modify=TRUE?