用了ado控件編寫的應用程序如何退出整個應用程序?(100分)

R

rssgm

Unregistered / Unconfirmed
GUEST, unregistred user!
我以前用BDE編寫的應用程序能用 application.Terminate 正常退出,可改用ADO控件後就不能退出了.在主FORM的ONCLOSE事件中加入 application.Terminate 後,執行退出時,系統提示:exception estackoverflow in module rs_dpr.exe at 00091585 stack overflow.(其中rs_dpr.exe是我的應用程序)
 
主窗体关闭,也就是关闭应用程序啊。不用专门写application Terminate.
 
TO ttaa:
我的程序在調用主窗口之前先調用了一個登錄窗口,所以當我關閉主窗口後,登錄窗口並沒有關閉,應用程序也未從內存中退出.
 
你试试你的主窗体close事件中调用登陆窗口.Close
呀!
 
主窗口显示的时候,就把登陆窗口Close,不就可以了?
 
这不应该是登录窗口的问题。
登录窗口你可以在登录成功后 Free 掉。

正常的关闭“X”按钮也有这问题吗?
 
可能是系统的问题吧?
 
可能是因为,你关闭时,部分数据库连接未关闭,比如有个ADOQUERY还Acitve:=true着

尝试先关闭所有数据连接先
 
只要你的登陆窗口不是主窗体的话。
关闭主窗体,登陆窗口也一并给关闭的。
除非你的登陆窗口就是主窗口。
 
关闭数据库应该就可以 正常退出了
 
多謝上面幾位的指點,可我全試過了,還是不行!當我不加 application.Terminate 時,程序可以正常退出,但並沒有真正從內存中釋放;當我加了後,就出現前面的那個提示.
我的登錄窗口不是主窗口,登錄窗口只是在顯示主窗口之前作一個用戶身份確認的.登錄窗口的確認事件程序代碼如下:
main_form:=tmain_form.create(application);
main_form.show;
login_form.Hide;
其中main_form為主窗口,login_form為登錄窗口.請各位高手指點!多謝!
 
应该把你的项目文件的源代码贴出来。估计是登录窗口的问题,就要在项目文件中找。
 
噢对了,试试在onclose中写如下的代码:
if messange(form1.handle,'是否退出','提示',mb_okcancel+mb_iconinformation
)=idok then action:=caFree
else action:=caNone
 
噢,我把messagebox写成了Messange了,注意哟!
对不起^_^^_^^_^^_^^_^!!!
 
顶部