有一个DataModule,在application中如下代码:
uses
  Forms,
  Main in 'Main.pas' {Form_Main},
  FAbout in 'FAbout.pas' {AboutBox},
  DataModule in 'DataModule.pas' {DataModule1: TDataModule};{$R *.res}begin
  Application.Initialize;
  Application.CreateForm(TForm_Main, Form_Main);
  Application.CreateForm(TDataModule1, DataModule1);
  Application.Run;
end.在主窗口中
procedure TForm_Main.FormShow(Sender: TObject);
begin
  DataModule1.ADOConnection1.Connected := false;  Try
     //DataModule1.ADOConnection1.Connected := True;
   except
     //Self.ModalResult := -100;
     Application.MessageBox('无法连接数据库,请确认连接参数!','系统提示',MB_OK);
     Application.Terminate;
   end;end;只要调用connect连接数据库,则在程序的Terminate时,必然导致致命的错误,程序崩溃,这是为什么?

解决方案 »

  1.   

    补充,DataMOdule已在Application中默认初始就创建了
      

  2.   

    先創建DataModual 再創建TForm_Main,
      

  3.   

    把这一段移到TDataModule1.DataModuleCreate(Sender: TObject);中去
      DataModule1.ADOConnection1.Connected := false;  Try
         //DataModule1.ADOConnection1.Connected := True;
       except
         //Self.ModalResult := -100;
         Application.MessageBox('无法连接数据库,请确认连接参数!','系统提示',MB_OK);
         Application.Terminate;
       end;
      

  4.   

    同意  meiqingsong() begin
      Application.Initialize;
      Application.CreateForm(TDataModule1, DataModule1);
      Application.CreateForm(TForm_Main, Form_Main);
      Application.Run;
    end.