做启动窗口,或者做登录窗口。
program Project1;uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1}; //启动窗口
  Unit2 in 'Unit2.pas' {Form2}; //登录窗口
  Unit3 in 'Unit3.pas' {Form3}; //主窗口{$R *.RES}begin
  Application.Initialize;
  Form1 := TForm1.Create(Application);
  Form1.Show;
  //
  做一些事情,如数据库的连接,等等。
  //
  Form2 := TForm2.Create(Application);
  Form2.ShowModal;
  Application.CreateForm(TForm3, Form3);
  Form1.Free;
  Application.Run;
end. 

解决方案 »

  1.   

    program trans2;uses
      Forms,
      Windows,
      transfm2 in 'transfm2.pas' {MainForm2},
      tdata2 in 'tdata2.pas' {DM1: TDataModule};var
       pHwnd :Hwnd;{$R *.RES}begin
      pHwnd := FindWindow(nil,'MainForm2');
      if pHwnd <> 0 then exit;
      Application.Initialize;
      Application.CreateForm(TDM1, DM1);
      Application.CreateForm(TMainForm2, MainForm2);
      Application.Run;
    end.
    此段代码用来保证可执行文件只能起来一次。
      

  2.   

    program project1;uses
      Forms,
      Unit1 in 'Unit1.pas' {Form1};{$R *.RES}procedure initUnit();
    var h:HWND;
    begin
      h := FindWindow(nil,'Borland Socket Server');
      if h=0 then
         ShellExecute(0, nil, 'scktsrvr.exe', nil, nil, 1);
    end;begin
      initUnit(); //象这样~~~~~~~~~~~
      Application.Initialize;
      Application.CreateForm(TForm1, Form1);
      Application.Run;
    end.