是不是弹出方式的问题。
试用非模态窗口。
或者监视WM_CLOSE或WM_SYSCOMMAND消息。

解决方案 »

  1.   

    建议退出前先检查数据库是否被修改:是,弹出才警告窗口。用API函数取得frmMain
    的句柄,然后截获并处理WM_CLOSE消息。
      

  2.   

    感谢各位的回复。
    这里我要重声一下:frmMain在最小化退出该程序时,frmExitPromt弹出就变灰了,好象一直在处理什么,而真正的数据库维护是在frmMain的form_unload中作的。在单步执行时不会发生这样的事情
      

  3.   

    我好象也碰到这个问题,不过没有解决,只有先判断如果Form是最小化就在QuecyUnload里把Cancel设为True取消请求。
      

  4.   

    加个Doevents时试试。
    再就是,如果直接.Show, 则程序继续运行(即退出),否则,等待至弹出窗口关闭。
    建议:
    frmExitPrompt.show 1
    if saveit then
    ...
    else
    ...
    endif
    if quitit then
    ...
    else
    cancel=true
    endif
    process_savethings.