Delphi 5开发人员指南 Mdiapp 例子 运行出现非法操作!!!(200分)

  • 主题发起人 主题发起人 VGA
  • 开始时间 开始时间
V

VGA

Unregistered / Unconfirmed
GUEST, unregistred user!
Delphi 5开发人员指南 Mdiapp 例子 运行出现非法操作!!!
运行过程为:
1、新建text子窗体
2、直接退出该程序
我试着在主窗体的OnClose事件中先关闭子窗体,
for i := MdiChildCount - 1do
wnto 0 do
MDIChildren.Close;

则按上面的步骤运行,没有问题。但这时,若打开了RichText窗体,在关它闭时,会
执行两次 OnCloseQuery,让人很烦, 不知各位是否遇到此问题, 请多指教!
 
该例在 /Code/Cd16/MDIAPP 文件夹里。
 
若有那位没有, 我可以提供源码!
 
我按你说的做了,打开同目录的DIR.TXT,然后点主窗口的X按钮退出,没有事啊!
 
在我这(win98se + d5 + pack1 )百试百爽,每次必错!
你看这样好不好,我把我编译的结果发给你,你把你编译的结果打包发给我,给程序换个环境,
相互验证一下。看到底是怎么回事。
多谢相助!
 
我用的Win2K,会有影响吗?是不是还需要多打开几个子窗口?我的mail:xjy@gdbbk.com
 
多打开几个子窗口时,没问题。
 
在win2k下我刚试了,也没有问题,那么问题出在哪里?
 
在win me 下我刚试了,问题依旧,那么问题出在哪里?
 
我刚在 Win98 下试了,也出了问题。跟踪了,发现是在 Application.Run 结束后,RTL 进
行收尾工作时出的错,Call Stack 如下:
@Handlefinally
TComponent.DestroyComponents
DoneApplication
DoExitProc
@Halt0
再跟踪下去就会报 kernal32.dll 遇到 800004 外部错误,然后就象按了 Ctrl+F2一样,自
动退出了调试,程序也结束了。我找了找,下面的新闻服务器
news://news.xapware.tzo.com 下有作者建立的关于 D5DG 的新闻组,可以在那讨论书中的
问题,但都是 E 文,我只会看,要不你去试试?
不行就这样吧:
for i := MdiChildCount - 1do
wnto 0 do
begin
MDIChildren.OnCloseQuery := nil;
MDIChildren.Close;
end;
OnCloseQuery 就只执行一次了。为什么呢?
 
多谢!我会记住给你加分的。
 
此例在 D6 中编译后运行正常。
 
后退
顶部