close和 application.Terminate的区别(100分)

  • 主题发起人 主题发起人 cb1997
  • 开始时间 开始时间
C

cb1997

Unregistered / Unconfirmed
GUEST, unregistred user!
当退出一个程序是是用close还是application.Terminate好啊??????

我写了个小程序在退出后,界面是退出了,可是按下Ctrl+Alt+Delete后当中还有哪个程序
等下次在启动该程序是就产生错误,这个问题请大家帮帮忙吗!
 
用Application.Terminate比较好!
 
close是TForm的方法,作用是关闭窗口,内部会出发OnCloseQuery事件,
如果关闭的是主窗口的话,则同时关闭程序退出。

Application.Terminate则发送wm_quit消息至应用程序,因此窗口OnCloseQuery事件的发生,
有点强制退出的意味。

我想应该在出错退出的时候才应该使用Application.Terminate。
 
Borland文档提倡用Application.Terminate
因为它会等处理其他消息完了才退出应用程序
 
Application.Terminate
不会激活以下两个事件:
OnCloseQuery
OnClose
 
CLOSE仅仅是关闭某个窗口,而APPLICATION。TERMINATE是结束整个程序。

要退出程序当然是用后者了。
 
应该在程序的主窗中写ONCLOSE事件退出程序,
发生错误时才用application.terminate强制退出。
 
对,应该用close
 
你可能用close退出的不是主窗体(主窗体可能被隐藏或其他原因)
如果是的话close和application.Terminate在感觉上应该是一样的
只不过application.Terminate在任何情况下都能直接关闭程序
 
我用Application.Terminate有一次出现没有响应的现象。
 
说明你的程序有问题。
主窗口 close 时会自动 发送 WM_QUIT消息,然后调用 application.Terminate

Terminate is called automatically on a WM_QUIT message and when the main form closes.
 
如果有问题,强制中断的时候就用 halt 好了。
 
close是关闭窗口。如果是主窗口,则表示关闭整个应用程序。
application.Terminate是中断应用程序的运行,不管应用程序是否正常。
 
来迟了。上面解释得很清楚了。
 
多人接受答案了。
 
后退
顶部