在退出所编程序时,老提示系统出错,有时又莫明其妙地不出错,不知是何原因?(100分)

  • 主题发起人 主题发起人 Laotian
  • 开始时间 开始时间
L

Laotian

Unregistered / Unconfirmed
GUEST, unregistred user!
系统为D5
在以前的论坛中有在说是在 Form 的Create 中引用了没定义的变量,
可我查了半天也没查到,感觉与我的程序SPLASH有关,我在项目的SOURCE中
定义:
SplashForm:=TSplashForm.Create(Application);
SplashForm.Show;
SplashForm.update;
Form_login:=Tform_login.Create(Application);
Application.Initialize;

....
SplashForm.Hide;
SplashForm.Free;
Form_login.showModal;
If form_login.ModalResult=1 then
Application.Run
else
Application.Terminate;

其中的Form_login 为系统登录窗口,以上程序应该没问题,为何当结束程序
时老出错?是否与程序中引用的控件有关?



Application.run


 
是不是,application 还没 run, 就 terminate. (猜的)

要不,一个一个把 splash, form_login 去掉,再试试
 
Application.Initialize;
放到程序最前面。即:

Application.Initialize;

SplashForm:=TSplashForm.Create(Application);
SplashForm.Show;
SplashForm.update;
Form_login:=Tform_login.Create(Application);
....
SplashForm.Hide;
SplashForm.Free;
Form_login.showModal;
If form_login.ModalResult=1 then
Application.Run
else
Application.Terminate;
 
Application.Initialize;放到程序最前面。
 
我是这样干的,没有闷题!
begin
SplashForm := TSplashForm.Create(Application);
SplashForm.Show;
SplashForm.Update;
Application.Initialize;
Application.CreateForm(TMainForm, TMainForm);

SplashForm.Close;
SplashForm.Free;
SplashForm:= nil;
Application.Run;
end.
 
是每问题,但是你不能在Application.Initialize之前使用Application的任何东西
所以最好Application.Initialize放在最前。

Laotian:
Form_login好象没有释放。在程序后加入Form_login.Free;
 
If form_login.ModalResult=1 then
Application.Run
else
Application.Terminate;

还terminate啥,程序运行出去就退出了,不用terminate了
 
对呀,就是我想说的,试试看嘛。
 
Application.Initialize;放到程序最前面
 
总题还是没解决,最后我把Splash不要了就好了!!!
 
后退
顶部