我有这样一个问题。我做了一个程序。大约有2,35M吧,先是启动界面。
然后是用户登录。再就是主程序窗体了、在主窗体中有一菜单是'退出'。
是这样写的
procedure TForm3.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if Application.MessageBox('你真的要退出本系统吗?','提示',MB_YESNO )=IDYES then
begin
CanClose:=True;
end
else
CanClose:=False;
end;
就是退出本程序的时候提示。
我运行了一次。退了以后。按ctr+del+alt看见关闭程序列表中有我的应用程序名字。
运行三次我的程序就出错了。提示a call to os fuction failed.一个调用操作
系统的函数异常了。
我运行别的软件退出以后,。按ctr+del+alt看见关闭程序列表中没有它们的名字呀。我
的程序为什么有呀?而且执行三次还出错呀。为什么呢?而且我的程序还特别慢呀。另外
我的可执行程序目录下有一些del1.MB,del2.MB,del3.MB一至到del7.MB.我用的是access数据
库。我把它们都删除了以后。再执行我的程序还是产生del1.MB,del2.MB....
是不是内存没有释放呀。我该怎么办呀?请指路。谢谢高手们。

解决方案 »

  1.   

    有在窗口关闭事件中写这一句吗  action:=cafree;
      

  2.   

    提示a call to os fuction failed大概是由于关闭窗口时没有释放内存导致.
    另外程序可改为
    procedure TForm3.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    begin
    if Application.MessageBox('你真的要退出本系统吗?','提示',MB_YESNO )=IDNO then
    CanClose:=False;
    end;
    更简练.