MID DlL窗体与Application.Messagebox 结合后控件失效???

jozosoft 2006-11-14 10:10:55
现在若干窗体,封装成DLL窗体(MDI子窗体).
现发现一个大问题:
  如果MDI子窗体上有表格控件,如DBGrid或DBGridEh,而且在提交数据时或者发生了其它各种错误,并且出现了MessageBox信息框(不管是系统自己弹出的还是人工用Try...Except...显示的MessageBox),都会有问题,表现在:
1、表格就会没有用了。也就是用鼠标去点时没反应(就像发生了 adoDataset.DisabledControls一样,但我断点检测发现并没有执行 adoDataset.DisabledControls操作,而且,点DBNavigator时,表格上的记录还能移动,用方向键或Mouse点表格却无反应)。
2、DBGrid或DBGridEh本身的Enabled是正常的,可用的;
3、出现上面的错误时,如果把焦点移到表格以外(如各种Edit,或Button),再到表格上点一下鼠标,问题马上就解决了。

附注:
如果我人工用 Showmessage显示出错时的信息而不用 Application.MessageBox,就不会出错;
 
  请问各位,我应该如何办呀?我必须要用 Application.MessageBox(也就是有左上角有图标的那种消息框),因为Showmessage有时会处于窗体的下面,使用户点不到,而且,有时我还要用Application.MessageBox与用户对话。

...全文
96 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
jozosoft 2006-11-14
  • 打赏
  • 举报
回复
而且,我发现,如果不封成DLL窗体,再怎么搞都不会出错/
另外,我的对话框有时会用于 非窗体(也就是说,有时单纯的DLL里要用,单纯的Unit也要用.我是把消息框写成一个自定义函数,我担心会不会是 Handle 引起的)
newfang 2006-11-14
  • 打赏
  • 举报
回复
偶一直用DLL分割程序,MDICHILD窗体也搞过,不过没见到你说的什么问题~~
楼主意思是只要弹出MESSAGEBOX后就出问题么?偶没明白你意思哦~

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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