回 帖 发 新 帖 刷新版面

主题:各位大侠,请教一个窗体跳转的问题!

我已经建立了三个窗口:
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个回复)

沙发


怎么没有人理啊??????

板凳

top

3 楼


添加在FormCloseQuery事件中,看看行不行
关闭窗口一般都来个询问
if Application.MessageBox(' 退出吗?','警告',mb_OKCANCEL+ICONQUESTION)=mrOK then
  Application.terminate;
代码没调,差不多

4 楼

你在结束的时候写上主窗体关闭!!![em7]

5 楼

这样看行不行:

首先在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 楼

小问题,看多写多就能解决了

7 楼

修改一下工程文件,
生命一个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 楼

~{Ub8v7=7(NRJTAKR;OB~},~{5+JGNRQ!Tq7qJ140LeR29X5t5D~}.

我来回复

您尚未登录,请登录后再回复。点此登录或注册