目前,我使用Delphi6.0开发一套应用系统,里面采用了MDI的方式,模块是调用Dll方式,报表是利用FastReport3.13版本。主窗体只有一个菜单,菜单项是调用Dll模块功能,FastReport报表是做Dll里面调用的。故障情况是这样的:
    如果主窗体打开,MDI窗体也有打开,FastReport的MDI预览窗体也打开,现在要关闭了,
    有几种情况:
        1)先关闭FastReport的MDI的预览窗体,接下去什么关闭系统都不会出错,很正常。
        2)先关闭主窗体,而没有关闭FastReport的MDI预览窗体,就会出错。
        3)如果没有打开FastReport的MDI预览窗体,系统什么关闭都不会出错。
   我试过的方法:
      1)利用MDIChildCount,解决不了。
      2)利用FindWindows查找窗体句柄,也找不到。
         (Fastreport的Caption:='Preview' ,类是"TfrxPreviewForm")
   请高手们试一试,解一下。分数不够,可以再给。

解决方案 »

  1.   

    正常操作是关闭Fastreport,而后退出系统。可是,操作员不一定这样规范操作。这就会引起程序出错。不知该如何系统检测是否有FastReport的MDI预览窗体,然后发送消息,让它自动关闭,安全退出。
    就这一步,我不知道,请大家帮忙!!!!!!!!!!!!!!!
      

  2.   

    这样情况我在用fr2.53时遇见过。但只要不使用MdiPreview功能,则fr将是一个模态窗口,只有操作fr则不能操作主控程序。
      

  3.   

    今天,我测试一下FastReport的自带的DEMO中,有一个Dll测试程序,它原来是模态窗体,运行是正常的。我将它改成MDI,运行就会出错。这是不是它本身的问题BUG?
    不过,不是利用DLL来封装,那运行就不会出错。
    请大家帮忙解决一下。分数不够,提出来,我再加。