解决 lazarus 0.9.30 退出程序的问题
(2011-10-16 17:13:26)
标签:
it |
在升级了 Ubuntu 11.10 之后,发现对应的 lazarus 版本也被升到了
0.9.30,但是这个版本产生了一个问题,即在静态调用了 so
之后,无法正常退出程序,程序会卡在最后的那个界面上,然后再也不动,过一阵子系统提示无响应,强制退出。
with TProcess.Create(nil) do
begin
CommandLine :=
Format('kill %d', [GetProcessId]);
Execute;
end;
killSelf;
这无疑是一个不好的体验,当然了,你可以在升级的时候,选择不升级
lazarus,或是在 ubuntu 11.10 装好后,再换源把 lazarus 降回
0.9.28,都不会有问题,但是这样也就失去了体验新版本的机会。
我是不愿去追究这个问题的来源,因为这并没有意义,我更愿意解决问题,其实这个问题的解决也很简单,既然关不掉,那么就强行的杀掉它,linux
下提供了相当强大的杀掉进程的方法,代码如下
procedure killSelf;
begin
end;
好啦,在想关掉程序的地方调用这个函数就可以了,比如说
procedure TForm1.FormDestroy(Sender: TObject);
begin
end;