我做了一个登陆界面.点确定的时候弹出Main页面,但是做完之后,Main出来的时候,登陆页面还是在那没有消失,为什么?望高手指点下部分代码:
先不考虑数据的判断,在登陆按牛上我是这样写的MainForm.show;
loginform.ModalResult :=mrok ;有什么地方需要改的,谢谢大家了!

解决方案 »

  1.   

    loginform 没ShowModal吧
    loginform.close
      

  2.   

    //应该这样.当登陆成功后,再打开主窗体,然后释放登陆窗体.
    loginForm := TLoginform.Create(nil)
    try
    begin
      if loginform.showmodal= mrok then
      begin
         MainForm.show;
      end;
    end;
    Finally
    loginform.Free;
    end;
      

  3.   


    function TUser.Logon:Boolean;
    var
     form:Tfrm_Logon;
    begin
      Result:=False;
      form:=Tfrm_Logon.Create(nil);
      form.User:=self;
      form.Showmodal;
      if mrOK=form.ModalResult then
        Result:=True;
      form.Free;
    end;function TUser.Logon(const AID,APassWord:String):Boolean;
    begin
     //数据库中检查密码是否正确end;
      

  4.   

    改成为loginform.hide,关闭Main时,再关闭loginform.close
      

  5.   

    帖段代码给你,别人的:
    1. 登录窗体先显示,登录后显示主窗体用两个窗口举例如下:
    FORM1是主窗体,FORM2是动态生成的登陆窗体(project - > options中的forms页面,把form2从左边拖到右边去),form2上面有两个按钮,一个是登陆,一个是取消,对应代码分别如下:form2的代码:unit Unit2;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      TForm2 = class(TForm)
        Button1: TButton;
        Button2: TButton;
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
      private
        {   Private   declarations   }
      public
        {   Public   declarations   }
      end;var
      Form2: TForm2;implementation{$R   *.dfm}procedure TForm2.Button1Click(Sender: TObject);
    begin
      ModalResult := mrOk;
    end;procedure TForm2.Button2Click(Sender: TObject);
    begin
      ModalResult := mrCancel;
    end;end.然后在工程文件中,默认为project1.pas, 代码如下:program Project1;uses
      Forms,
      Controls,
      Unit1 in 'Unit1.pas' {Form1},
      Unit2 in 'Unit2.pas' {Form2};{$R   *.res}begin
      Application.Initialize;
      Form2 := TForm2.Create(nil);
      try
        if Form2.ShowModal = mrOk then begin
          Application.CreateForm(TForm1, Form1);
          Application.Run;
        end;
      finally
        Form2.Free;
      end;
    end.
      

  6.   

    参考如下:
      Application.Initialize;
      Application.CreateForm(TMainForm, MainForm);
      Application.CreateForm(TLoginForm, LoginForm);
      Application.ShowMainForm:=false;
      LoginForm.Show;
      Application.Run;