Modified的问题.

d_delphi 2002-03-21 01:43:32
建立两个窗体,一个放DBGrid1,并已连连ADO数据数,另一个放一个Button,其Onclick事件: if DataModule4.plan_cxa.Modified then showmessage(‘已检查到DBGrid1有修改’) ,运行并修改DBGrid1的内容,然后按Button,一点反应都没有。如果把此Button放在DBGrid1同一个窗体就会检查到DBGrid1内容有修改,显示对话框,是什么原因?
...全文
240 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
d_delphi 2002-03-21
  • 打赏
  • 举报
回复
那有没有办法可以解决button和dbgrid1不在同个窗体,button可以知道Modify=TRUE?
Borlandor 2002-03-21
  • 打赏
  • 举报
回复
是这样的:
当你在DBGrid1上作修改后,如果本窗体的焦点还在DBGrid1上起始位置时,相应的Dataset的Modify仍为FALSE。
如果button和dbgrid1在同个窗体,dbgrid1焦点会发生变化,Modify=TRUE;
如果button和dbgrid1不在同个窗体,dbgrid1焦点没有发生变化,Modify=FALSE;
d_delphi 2002-03-21
  • 打赏
  • 举报
回复
Lock Type设置都为ltBatchOptimistic,一个是fsMDIForm窗体,另一个是fsMDIChild窗体。
outer2000 2002-03-21
  • 打赏
  • 举报
回复
原因是你的修改并没有生效,就是传递到后台;
如果在同一个窗体,当DBGRID失去焦点的时候自动更改后台数据;
而在另外窗体,并没有传递到后台,你可以先点一下DBGRID窗体,然后在点
另一个窗体的按钮?
01101230 2002-03-21
  • 打赏
  • 举报
回复
肯定不会有问题的。
极有可能是你进行了某些对数据库的操作(比如说移动了数据库指针)之后才从有DBGrid的窗体切换到另外一个窗体,此时数据并不处于编辑状态,因此不会显示对话框,请你检查你的程序。

828

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧