我的设计是程序运行后首先出现登陆界面,登陆成功转到主要的功能界面,登陆界面自动关闭。
但是登陆界面是主界面,没办法关或者隐藏,最接近的办法是隐藏GroupBox,把界面最小化,但是还是不好看。怎么解决呢?
我试过把功能界面和登陆做在一起,做一个菜单,功能项先为灰色。但是登陆成功后仍然没办法从登陆的小界面把功能菜单项打亮。怎么解决呢?
这两种办法有一个能解决就可以了。
谢谢!

解决方案 »

  1.   

    unit1.form1.hide;
    unit2.form1.show;要互相包含才能互相使用(引用)对方的资源.
      

  2.   

    在功能窗口的FormCreat事件中打开登陆窗口就可以了
      

  3.   

    给你做了个例子:两个窗体,form1是主窗体,没有任何代码,loginform是登陆窗体,有一个edit接受密码,一个button判断密码是否正确,代码如下
    unit Unit2;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      TloginForm = class(TForm)
        Button1: TButton;
        Edit1: TEdit;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      loginForm: TloginForm;implementation{$R *.dfm}procedure TloginForm.Button1Click(Sender: TObject);
    begin
      if Edit1.Text = '1234' then ModalResult := mrOk
      else ModalResult := mrCancel;
    end;end.然后你将工程文件按照下面的写法写,就会先出现登陆窗体,如果密码正确,则显示主窗体,否则,程序结束program Project2;uses
      Forms,
      Unit1 in 'Unit1.pas' {Form1},
      Unit2 in 'Unit2.pas' {loginForm};{$R *.res}begin
      Application.Initialize;
      try
      loginForm := TloginForm.Create(nil);
      if loginForm.ShowModal = 1 then
      begin
        Application.CreateForm(TForm1, Form1);
        // Application.CreateForm(TForm2, Form2);
        Application.Run;
      end else Application.Terminate;
      finally
        loginForm.Free;
      end;
    end.
      

  4.   

    可以隐藏的啊,我一直都是这样用的啊。
    登录窗口里进行身份验证,验证成功后执行
            Hide;
            MainForm.Show;
      

  5.   

    hide,
    或者visible := False注意关闭应用时还需要处理啊!
      

  6.   

    在工程文件中标写上
      Application.Initialize;
      Application.CreateForm(TForm1, Form1);
      Application.CreateForm(TForm2, Form2);
      application.ShowMainForm := false;
      form2.Show;
      Application.Run;
    form2 作为登陆窗口就好了.