h:=createMutex(nil,false,'form1');
if GetLastError() = ERROR_ALREADY_EXISTS then
begin
showmessage('程序已正在运行');
application.Terminate; //终止程序
end
else
begin
Application.Run;
end;这是一个只能允许一个程序的代码,我把application.Terminate改为close 结果有差别 求解释?
if GetLastError() = ERROR_ALREADY_EXISTS then
begin
showmessage('程序已正在运行');
application.Terminate; //终止程序
end
else
begin
Application.Run;
end;这是一个只能允许一个程序的代码,我把application.Terminate改为close 结果有差别 求解释?
--------------
销毁有用程序 你打开的程序关闭了close
--------------
关闭窗口
close关闭当前窗体,如果是主窗体,进程结束
Close是Form的关闭事件,如果当前Form是程式的主窗口,则Close会调用Application.Terminate。
看你的代码,估计是写在Form中了,所以你才想调用Close这种做法是不严谨的,因为你把代码写在Form中
这时Form是已经创建加载过了,显然是没有必要的,也增加了无谓的内存开销
另外 app .ter 是强制性的. 而close 会被 closequery 勾住.假设你捕获到异常必须中止程序, 但是你的程序关闭的时候有判断, 就只能用APP.Ter