各位大虾: 小弟请教一个登陆窗体问题,现有三个窗体,form1 form2 form3
form2.formstyle:=fsMDIform , form3.formstyle:=fsMDIchild;
project.option中有设置form2为MAIN,AUTO-CREATE Form3为available form要使form1为登陆窗体,输入用户和密码才出现主窗体form
那form1的属性该如何设置,有知道可以把form1做成flashform,要修改projiect代码才可以,如何让窗体form1在执行了查询后才close 而主窗体form2创建

解决方案 »

  1.   

    在我的程序中,一般闪页和登陆窗口是分开的,在没有添加闪页和登陆窗口的工程文件如下所示:(程序初始生成的)begin
      Application.Initialize;
      Application.CreateForm(TMainForm, MainForm);
      Application.Run;
    end.添加闪页和登陆窗口后,工程文件做如下修改:
    begin
      Application.Initialize;  try
      Logoform:=TLogoform.Create(Application);//创建闪页
      Logoform.Show;
      Logoform.Update;  Application.CreateForm(TMainForm, MainForm);//创建主窗体  finally
      Logoform.Free;//释放闪页
      end;  loginform :=Tloginform.create(application);//创建登陆窗口
      loginform.ShowModal;  Application.Run;
    end.其中,闪页(Logoform)不需要写任何代码,而在登陆窗口(loginform)中判别用户名和密码,验证通过后,登陆窗口(loginform)自行关闭。
      

  2.   

    form1属性如下:
    form1.Formstyle := fsStayOnTop
    project.option中设置为Available Form
    在projiect中加上:
      Application.Initialize;
      Application.CreateForm(Tform2, form2);
      try
        Application.CreateForm(Tform1, form1);
        if form1.ShowModal = mrOK then
        begin
          form1.Free;
          Application.Run;
        end
        else
          Application.Terminate;
      except
        Application.Terminate;
      end;在form1中加上:procedure TFrm_Login.BtnOkClick(Sender: TObject);
    begin
      if EdtPassword.Text = '123' then
      begin
        ModalResult := mrOK;
      end
      else
      begin
        MessageDlg('对不起,您无权进入系统!',mtError,[mbOk],0);
        ModalResult := mrCancel;
      end;
    end;