我现有的工程如下:
工程名:ABC
主窗体:Main_F
子窗体:emp1,emp2 ...现在的情况是,程序一运行,就会出现 Main_F我现在想增加一个新的窗体,叫 LOG_F  作为验证密码用。我想让程序运行时只显示 LOG_F,密码正确再显示 Main_F具体我该怎么做?

解决方案 »

  1.   

    你在project --option里把main_f双击到右边,左边只留log_f,然后程序运行时就只会显示log_f
    在log_f里添加代码,当密码正确时:
    main_f := tmain_f.create(self);
    main_f.show;
      

  2.   

    ABC.prj里面,在Application.CreateForm(TForm, Main_F)前加上
    Application.CreateForm(TForm, LOG_F);
    LOG_F.showmodal;
    if LOG_F.modalreturn = true then
    Application.CreateForm(TForm, Main_F);
    ..... 
      

  3.   

    在Application.CreateForm(TForm, Main_F)前加上 
    Application.CreateForm(TForm, LOG_F); 
    LOG_F.showmodal; 
    Application.CreateForm(TForm, Main_F);
      

  4.   

    program Project1;uses
      Forms,
      Unit1 in 'Unit1.pas' {Form1},
      Unit2 in 'Unit2.pas' {Form2};{$R *.RES}begin
      Application.Initialize;
      Application.CreateForm(TForm1, Form1);
      Application.CreateForm(TForm2, Form2);
      Form2.ShowModal;

      Application.Run;
    end.
      

  5.   

    program Project1; uses 
      Forms, 
      Unit1 in 'Unit1.pas' {Form1}, 
      Unit2 in 'Unit2.pas' {Form2}; {$R *.RES} begin 
      Application.Initialize; 
      Application.ShowMainForm  := false ;//要加上这句
      Application.CreateForm(TForm1, Form1); 
      Application.CreateForm(TForm2, Form2); 
      Form2.ShowModal; 
      Application.Run; 
    end. 
      

  6.   

    Application.ShowMainForm  := false貌似不用加吧,Application.Run;中才调用MainForm.Show的
      

  7.   

    我按‘沙漠中的鱼’的方法弄好这后,效果差不多就是我要的那样子。
    但是在Main_F最小化的时候,最小化后,不是在任务栏,还是在桌面的左下角,开始菜单的上面。要怎么办?我的方是:
    在project --option里把所有的窗体放到右边,包括main_f,左边只留log_f,然后程序运行时就只会显示log_f 
    在log_f里添加代码,当密码正确时: 
    main_f := tmain_f.create(self); 
    main_f.show;
    Log_F.Hide;
      

  8.   

    在Application.Run ;之前,让
    LOG_F.Show()或者LOG_F.ShowModal() ;
      

  9.   


    启动时的代码
    begin
      Application.Initialize;
      Application.Title := 'ABC Hrms';
      Application.CreateForm(TLog_F, Log_F);
      Application.Run;
    end.
    打开Main时的代码
     Main_F := Tmain_F.Create(self);
     Main_F.Show;
     Log_F.Hide;
      

  10.   

    在project --option里把所有的窗体放到右边,左边只留main_f在Tmain_f.FormShow 事件中调用登录窗体
      LOG_F:= TLOG_F.Create(Self);
      LOG_F.ShowModal;
      if 登录成功则 关闭登录窗体
      else
      begin
        Close;
        ExitProcess(0);
        Application.Terminate;
      end;
      

  11.   

    方法很多.可以在main_form的formcreate事件里写显示密码对话框的代码
      

  12.   

    begin
      Application.Initialize;   Form2:= TForm2.Create(Application);   if Form2.ShowModal <> 1 then
          Application.Terminate ;     Form2.Free;
         Application.CreateForm(TForm1, Form1);
         Application.Run  ;end.
      

  13.   

    d7里面 点击菜单下project---view source(其实也就是 dpr那个文件的内容)
    这里面的代码是程序的入口 要在这里面做修改以下是我写过的程序的一个例子begin
      Application.Initialize;
      //初始化数据库类  G_DatabaseModule是数据库执行全局对象 
      //所有的adoquery都由它执行
      G_DatabaseModule := TdmDatabase.Create(nil);
      if not G_DatabaseModule.TryConnect then
      begin
        Application.MessageBox('数据库连接错误,请检查配置和网络!','错误', 
          MB_ICONERROR);
        Application.Terminate;
        Exit;
      end;
      //创建登录对话框
      with TfrmLogin.Create(nil) do
      begin
        if ShowModal <> mrOK then
        begin
          Free;
          Application.Terminate;
          Exit;
        end
        else begin
          //登录成功进入主界面
          Application.CreateForm(TfrmMain, frmMain);
        end;
      end;
      Application.Run;
    end.
      

  14.   


    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs,Unit2;type
      TForm1 = class(TForm)
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
    var
      fmLog:TForm2;
    begin
      fmLog:=TForm2.Create(Self);
      if fmLog.ShowModal=mrOk then
      begin
        ShowMessage('成功登录!');
      end
      else
      begin
        ShowMessage('登录失败!');
        Application.ShowMainForm:=False;
        Application.Terminate;
        Exit;
      end;
    end;end.
    这样就可以的。
      

  15.   

    谢谢RoverX,按照你的方法,基本搞定。