目的:在登陆正确时显示frmMain,并关闭登陆窗。
 if vLTag then begin
    Application.CreateForm(TFrmMain,frmMain);
    frmMain.Show;
    frmLogon.frm_Logon.Close; //把 frmMain也关了,然后退出程序。
 end;这是怎么回事?

解决方案 »

  1.   

    你那个FrmLogon是怎样创建的?
    是否 frmLogon:= TFrmLogon.create(application);
      

  2.   

    很明显frm_Logon被当作主窗口了。
    需要手工把FrmMain设置成主窗口,但是这样很麻烦,每次都要改。介绍一种简单的做法:
    在FrmMain.OnCreate;里登陆吧
    ...
    Application.CreateForm(Tfrm_Logon,frm_Logon);
    frm_Logon.ShowModal;
    Frm_Logon.Free;//(如果需要的话)
    if Not vLTag then Application.Terminate; //登陆不成功退出
    ....
      

  3.   

    把登陆窗体做成splash窗体,在工程中的dpr文件中添加如下代码:
      Application.Initialize;
      splash := tsplash.Create(application);
      splash.Show;
      splash.Update;
      Application.CreateForm(TForm1, Form1);
      splash.Free;
      Application.Run;