建議不要放在主窗口的CREATE事件;
最好放在公用DM里,若登陆成功,再show主窗口,否則結束程序

解决方案 »

  1.   

    取消事件里写
    Application.Terminate;
    即可
      

  2.   

    这里是一个例子(放在project单元中):
    program PrjSend;uses
      Forms,
      Unit_Data in 'Unit_Data.pas' {dmData: TDataModule},
      Unit_Main in 'Unit_Main.pas' {frmMain},
      Unit_Land in 'Unit_Land.pas' {frmLand},{$R *.RES}
                        
    begin
      Application.Initialize;
      Application.CreateForm(TdmData, dmData);
      Application.CreateForm(TfrmMain, frmMain);
      Application.CreateForm(TfrmLand, frmLand);
      frmLand.ShowModal;
      frmLand.Free;
      Application.Run;
    end.
      

  3.   

    mainform尚在创建之时就修改它,当然不行。
    用下面的代码:
    注意form1是mainform
    form2应在project-option中设为available;1.在工程文件中:
    program Project1;uses
      Forms,
      Unit1 in 'Unit1.pas' {Form1},
      Unit2 in 'Unit2.pas' {Form2};{$R *.res}begin
      Application.Initialize;
      Form2:=TForm2.Create(application);
      Application.CreateForm(TForm1, Form1);
      form2.Showmodal;
      form1.Visible:=false;
      Application.Run;
    end.
    2.在form2的响应事件中:
    form1.Visible:=true;
    3.run
      

  4.   

    procedure TFormMain.formcreate(Sender: TObject);
    begin
      formmain.Visible:=false;
      form_login:=TForm_login.Create(application);
      form_login.Show;
      form_login.Refresh;
    end;procedure TFormMain.FormActivate(Sender: TObject);
    begin
    if form_login.Showing then form_login.SetFocus;
    end;
      

  5.   

    这类问题已经提出得太多了,去看看这里:
    http://www.csdn.net/expert/topic/979/979938.xml?temp=.6458246