窗体隐藏的问题(100分)

M

magicor

Unregistered / Unconfirmed
GUEST, unregistred user!
有三个窗体splashform,form1.form2.
splashform是闪现窗体,form2是密码窗口,form3是主窗口。我想在闪现窗体
出现之后出现密码窗口,密码正确出现主窗口,若密码不正确,则提示密码错误
可是我输入正确的密码,弹出主窗体后,密码窗口没有被隐藏,请帮帮我。
begin
Application.Initialize;
splashform:=tsplashform.create(application);
splashform.show;
splashform.update;
while splashform.timer1.enableddo
application.processmessages;
splashform.hide;
splashform.free;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
form10:=tform10.Create(application);
form10.Showmodal;
Application.Run;
 
第一个调用Application.CreateForm建立的窗口会自动成为主窗体的。
你应该这样:
Form2 := TForm2.Create(Application);
form2.show;
form2.update;
if 输入密码正确 then
begin
form2.free;
Application.CreateForm(TForm3, Form3);
//这时才显示主窗口
....
Application.Run;
end
else
begin
//错误,再作其它处理,适当时候把 form2 free掉
...
end;
 
应该这样写:
Application.Initialize;
SplashForm:=TSplashForm.Create(Application);//SplashForm是闪现窗体
SplashForm.Show;
SplashForm.Refresh;
Application.Title := 'XXXXX系统';
Application.Name:='XXXXXX';
Application.CreateForm(TMainForm, MainForm);
Application.CreateForm(TSplashForm, SplashForm);
FmisForm.Show;
SplashForm.Hide;
SplashForm.Free;
LoginForm.IsLoadCall:=True;
//IsLoadCall是用来判断是否装载LoginForm;
if LoginForm.ShowModal<>mrOK then
begin
LoginForm.Release;
FmisForm.Release;
Application.Terminate;
end;
Application.Run;
 
同意江维的意见
 
Application.Initialize;
SplashForm:=TSplashForm.Create(Application);
SplashForm.Show;
SplashForm.Update;
Application.CreateForm(TMainForm, MainForm);
PasswordForm:=TPasswordForm.Create(Application);
SplashForm.Hide;
SplashForm.Free;

if LoginForm.ShowModal<>mrOK then
begin
LoginForm.Hide;
LoginForm.Free;
Application.Terminate;
end;

Application.Run;
 
多人接受答案了。
 
顶部