主题:各位大侠,请教一个窗体跳转的问题!
javake
[专家分:910] 发布于 2006-10-29 10:23:00
我已经建立了三个窗口:
1、程序欢迎窗口:FrmFlash
2、登录窗口:FrmLogin
3、程序主窗口:FrmMain
我要实现的功能是:
1、程序先显示FrmFlash,大约2秒后FrmFlash自动关闭,程序显示FrmLogin;
FrmLogin上有Button1(登录)和Button2(退出),
(1)、点击Button1运行登录过程,
如成功则关闭FrmLogin,显示FrmMain
如不成功,则显示错误信息,程序仍然是显示FrmLogin,让用户继续登录;
(2)、点击Button2程序中止运行退出。
2、当登录成功显示FrmMain后,当用户关闭该窗口,程序要中止运行退出!
我现在碰到的问题是:
当登录成功显示FrmMain后,当用户关闭该窗口,程序没有中止运行退出,而我在FormClose事件中加了Application.Terminate后程序出错!
请各位帮忙!
回复列表 (共8个回复)
沙发
javake [专家分:910] 发布于 2006-11-04 22:01:00
怎么没有人理啊??????
板凳
javake [专家分:910] 发布于 2006-11-07 21:25:00
top
3 楼
nieshoushuai [专家分:100] 发布于 2006-11-26 21:01:00
添加在FormCloseQuery事件中,看看行不行
关闭窗口一般都来个询问
if Application.MessageBox(' 退出吗?','警告',mb_OKCANCEL+ICONQUESTION)=mrOK then
Application.terminate;
代码没调,差不多
4 楼
comwang [专家分:0] 发布于 2006-12-06 21:45:00
你在结束的时候写上主窗体关闭!!![em7]
5 楼
中华韧峰 [专家分:600] 发布于 2006-12-07 16:46:00
这样看行不行:
首先在ForMain的FormCreate方法中添加以下代码,调用FormFlash窗体显示
With TFormFlash.Create(Nil)Do
Begin
ShowModal;
Free;
End;
在TFormFlash中添加计时器,并添加以下源码
procedure TFormFlash.Timer1Timer(Sender: TObject);
begin
Timer:=Timer-1;
If Timer<=0 Then
Begin
Timer1.Enabled:=False;
Close;
End;
end;
procedure TFormFlash.FormCreate(Sender: TObject);
begin
Timer:=2;
Timer1.Enabled:=True;
end;
登陆窗口类似方式实现。
退出时,FormMain中写上Close就行了。
感觉这个问题没有提清楚。
6 楼
shgye [专家分:0] 发布于 2006-12-08 16:08:00
小问题,看多写多就能解决了
7 楼
ywmjs [专家分:740] 发布于 2006-12-13 11:00:00
修改一下工程文件,
生命一个Integer变量:ResultModel
在Application.Initialize;之后添加
FrmFlash := TFrmFlash.Create(Application);
FrmFlash.Show;
Sleep(2000);
FrmFlash.Hide;
FrmLogin := TFrmLogin.Create(Application);
ResultModel := FrmLogin.ShowModel;
在FrmLogin中,登陆按钮中需要设置ShowModel的返回值为mrOK,
if ResultModel = mrOK then
begin
Application.CreateForm(TFrmMain,FrmMain);
Application.Run;
end else
begin
Application.Terminate;
end;
8 楼
league [专家分:0] 发布于 2006-12-13 17:44:00
~{Ub8v7=7(NRJTAKR;OB~},~{5+JGNRQ!Tq7qJ140LeR29X5t5D~}.
我来回复