Hola Jose Roman.
Yo coincido con Casimiro, no me parece necesario recurrir al uso de threads complicando una situación intrínsecamente simple.
Una opción sencilla es usar un mensaje para avisar al usuario que se está intentando la conexión y otro para el caso que falle, algo similar a esto:
Código Delphi
[-]
uses Windows, Forms, Dialogs;
procedure TDataModule2.DataModuleCreate(Sender: TObject);
const
MSG1 = 'Intentando conectar con la base de datos.' + #10 + #10 +
'Esto puede demorar, aguarde un momento por favor.';
MSG2 = 'Error al tratar de establecer la conexión con la base de datos';
var
dlg: TForm;
begin
with IBDatabase1 do
begin
DatabaseName:= 'TU_SERVER:C:\TU_PROGRAMA\BD\TU_BD.FDB';
Params.Clear;
LoginPrompt:= False;
Params.Add('user_name=sysdba');
Params.Add('password=masterkey');
try
dlg:= CreateMessageDialog(MSG1, mtInformation, []);
dlg.Show;
dlg.Refresh;
Open;
except
dlg.Close;
MessageBox(0, MSG2, '', MB_ICONERROR);
Application.Terminate;
end;
dlg.Close;
end;
end;
Saludos