problemas com terminate

Delphi

20/08/2012

Olá pessoal...!

Estou com problemas para encerrar o aplicavo quando ele não consegue conectar ao banco de dados. Criei a função abaixo em OnCreate do formulario primcipal "ConectarBD_ECF" e caso não consiga conectar, a aplicação precisa ser encerrada.
Para encerrar a aplicação utilizo o comando "Application.Terminate;".

O problema é que ao encerra o programa, o processo dele fica presso, daí tenho que ir no gerenciador de processos para encerrar manualmente. Alguém poderia me dar uma ajuda com isso, pois teóricamente, o que eu fiz era para funcionar, ou seja, encerrar o aplicativo e liberar a memória, retirar do processo.

Agradeço desde já qualquer ajuda.... Postei o código completo abaixo...

if not ConectarBD_ECF(Menssagem) then begin
MsgDlg(Menssagem,mtWarning,[mbOK]);
Application.Terminate;
Exit;
end;


function ConectarBD_ECF(var msg: String) : Boolean;
var ArqIni : TIniFile;
FileName, host, porta : String;
begin
result := true;
FileName := ExtractFilePath(Application.ExeName)+config.ini;
if FileExists(FileName) then begin
ArqIni := TIniFile.Create(FileName);
try
try
//Configuração de Acesso ao Banco de Dados
cnxDB := Descriptografar(ArqIni.ReadString(DB,DataBase,));
host := Descriptografar(ArqIni.ReadString(DB,Host,));
porta := Descriptografar(ArqIni.ReadString(DB,Porta,));
cnxUser := Descriptografar(ArqIni.ReadString(DB,UserName,));
cnxPw := Descriptografar(ArqIni.ReadString(DB,Password,));

//Configurações do Terminal
sTerminal := 0+Descriptografar(ArqIni.ReadString(TERMINAL,Terminal,));
sFilial := 0+Descriptografar(ArqIni.ReadString(TERMINAL,Filial,));
finally
ArqIni.Free;
end;

with dm.cDB do begin
Database := cnxDB;
Server := host;
Username := cnxUser;
Password := cnxPw;
Connect;
end;
except
on E: Exception do begin
msg := Não foi possível conectar o Banco de Dados!+#13+#13+Erro: +E.Message;
result := false;
end;
end;
end else
begin
msg := Banco de Dados não encontrado!;
result := false;
end;
end;
Vagner Almeida

Vagner Almeida

Curtidas 0

Respostas

Marco Salles

Marco Salles

20/08/2012

isto acontece quando não encontra o Ini ou quando da o erro do Connect (isto é na Exceção)

qual o delphi e qual o windows que vc esta utilizando ?

Testei aqui no Vista e no delphiXe2 e aparentemente o processo não ficou preso

[]sds
GOSTEI 0
POSTAR