两个窗体:fm1为主窗体,fm2为登录窗体,(不自动创建),如何实现,运行程序时先显示fm2登录窗体,登录成功则显示fm1主窗体,fm2登录窗体关闭,如果可以马上结贴

解决方案 »

  1.   

    Application.CreateForm(TfrmLogin, frmLogin);
        if frmLogin.ShowModal = 1 then
        begin
          frmLogin.Free;
          frmSplash := TfrmSplash.Create(Application);
          frmSplash.Show;
          frmSplash.Update;
          Application.CreateForm(TfrmMain, frmMain);
          frmSplash.hide;
          frmSplash.Free;
          Application.Run;
        end
        else
        begin
          frmLogin.Free;
          frmSplash.Free;
          DM.free;
          Application.Terminate;
          exit;
        end;
      

  2.   

    http://community.csdn.net/Expert/topic/3269/3269253.xml?temp=.2465326
      

  3.   

    在工程文件中,把frm2设置为主窗体,这样他就能最先显示
    对于frm2:
    ....
    implementation
    uses unitfrm1;//frm1的单元文件
    if {登陆成功则显示frm1窗体}
    begin
      frm1:=Tfrm1.create(self);
      frm2.hide;//好像是这个方法,反正就是隐藏此窗体让它不可见
      frm1.showmodal;
    end
    frm1.free;
    frm2.close;
    或者把frm1设置为主窗体uses unitfrm2;
    {在窗体create事件中}
      frm2:=Tfrm2.create(self);
      self.hide;//好像是这个方法,反正就是隐藏此窗体让它不可见
      frm2.showmodal;
      if glovar=1 then  //glovar是一个公共变量,由frm2的操作写值(登陆成功为1,不成功非1), 
                        //frm1读值
        self.show
      else
        self.close;
      

  4.   

    fm2的创建写在fm1的Create事件里,用ShowMadol显示窗体...