我现在在写一程序,是这样的,我有两个窗体,一个登陆窗体,一个主窗体,
现我想把主窗体设为MDI,而登陆窗体不是MDI,运行程序我一点击登陆窗体确定键,就可以进主窗体,同时登陆窗体消失。
现在问题是我一运行程序总是两个窗体同时出现,怎样设计才能只有登陆窗体而不要主窗体。不要什么form.hide之类的代码,有什么别的办法没!!!!

解决方案 »

  1.   

    这个不是MDI,如果你用MDI来解决那可真是麻烦大了。
      

  2.   

    可以在FORMSHOW事件里弹出登录窗体,这样可以在主窗体显示之前显示登录窗体,举例说明:
    procedure TfmMain.FormShow(Sender: TObject);
    begin
       //创建登录窗体
       fmLogin:=TfmLogin.Create(Application);
       //显示登录窗体
       if fmlogin.showmodal<>mrok then
       //登录窗体校验未通过
          Application.Terminate;
       //登录窗体校验通过,则显示主窗体
    end;
      

  3.   

    同意sunware() 的意见,这个不应用MDI的方法解决。可以把登陆窗体设为主窗体。再试一下!
      

  4.   

    在DEPHI程序中的PROJECT菜单项中选OPTIONS,在第一页(FORMS)中把loginform从auto create
    forms中添加到右边的应用窗体中,然后在项目文件中修改如下:
    program Project1;uses
      Forms,
      Unit1 in 'Unit1.pas' {MDIform},
      Unit2 in 'Unit2.pas' {loginform};{$R *.res}begin
      Application.Initialize;
      Application.CreateForm(TMDIform, MDIform);
      loginform:=Tloginform.Create(application);
      loginform.ShowModal;
      Application.Run
    end;
    就可以了。
      

  5.   

    在工程文件开始时创建登录窗口并显示,如不能登录,则终止程序
      Application.Initialize;
      FrmLogin := TFrmLogin.Create(Application);
      FrmLogin.ShowModal;
      FrmLogin.Free;
      Application.CreateForm(TFrmMain, FrmMain);
      Application.Run;
    在登录窗口中处理