问题是这样的,就是登录窗口
在project的view source里是
form2.showmodal;
然后
procedure tform2.close()
begin
application.terminate;
end
当关闭的时候,有一瞬间的主窗口会闪一下。
虽然有人教application.showmainform:=false;但如果是有连续几个form都showmodal的话,例如先弹出一个设置窗口,再弹出登录窗口,设置、登录完毕之后先来主窗口的话,如果在设置那一步已经terminate,登录窗口还是会一闪而过试着用了exit,还是不行(我把exit加在close里面)
那么应该怎么弄才达到我的要求呢?请指教,谢谢回复
在project的view source里是
form2.showmodal;
然后
procedure tform2.close()
begin
application.terminate;
end
当关闭的时候,有一瞬间的主窗口会闪一下。
虽然有人教application.showmainform:=false;但如果是有连续几个form都showmodal的话,例如先弹出一个设置窗口,再弹出登录窗口,设置、登录完毕之后先来主窗口的话,如果在设置那一步已经terminate,登录窗口还是会一闪而过试着用了exit,还是不行(我把exit加在close里面)
那么应该怎么弄才达到我的要求呢?请指教,谢谢回复
begin
application.MainForm.WindowState := wsMinimized;
application.terminate;
end
你这个方法只适合form是自动创建的,有没有适合手动创建,或者通用一点的方法?
我的连续showmodal的form连变量名都没有
program Project1;uses
Forms,
Controls,
Unit1 in 'Unit1.pas' {frmMain},
Unit2 in 'Unit2.pas' {frmLogin};{$R *.res}begin
Application.Initialize;
Application.CreateForm(TfrmMain, frmMain);
Application.CreateForm(TfrmLogin, frmLogin);
if frmLogin.ShowModal = mrCancel then Exit;
Application.Run;
end.
frmLogin在登录成功后给ModalResult赋值为mrOk,取消是赋值为mrCancel就行了
但是,只要主窗口里面包含ado数据控件或indy客户端组件的话,就会报错EAccessViolation
exit会在“主窗口使用ado数据控件”的情况下raise EAccessViolation
只要拖入一个ado控件,即使你不设定什么都好,也会报错