我现在要求做到....在主窗口启动时先运行一个数据库动态连接的窗口....然后运行登录窗口可是现在我一运行程序时连接窗口还没有设置完,登录窗口就跳出了.....要怎样才能在我的连接窗口设置完之后才跳出登录窗口

解决方案 »

  1.   

    我写在主窗口的show里面....要怎样写呢....
      

  2.   

    用两个窗口举例如下:
    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.
    运行,查看效果,会发现程序先出现的是form2,当点击了登陆按钮,可以显示主窗体,否则程序结束。至于你说的数据连接窗口,同样的方法,自己编码控制吧。
      

  3.   

    能不能说这两个窗口一起显示.....只不过登录窗体在主窗体上方显示,也就是说层叠的,不过得登录了之后才能使主窗体活动
    form1中代码如下:
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs;type
      TForm1 = class(TForm)
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementationuses Unit2;{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
    begin
       Form2 := TForm2.Create(nil);
       Form1.Show;
       try
       if Form2.ShowModal <> mrOk then
         Application.Terminate;
       finally
       Form2.Free;
       end;
    end;end.
    工程文件的代码如下:
    program Project2;uses
      Forms,
      Unit1 in 'Unit1.pas' {Form1},
      Unit2 in 'Unit2.pas' {Form2};{$R *.res}begin
      Application.Initialize;  Application.CreateForm(TForm1, Form1);  Application.Run;
    end.
    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.
      

  4.   

    还是谢谢wudi....我回头再整整