Erro de Runtime aplicação delphi
Bom dia a todos tudo bem?
Tenho um módulo no meu sistema em delphi que chama um outro exe, e aguarda finalização desse segundo exe para continuar o processo até ai ok....Em um cliente apenas com Win7 32 bits acontece que quando fecho o segundo exe ele "fecha" porem continua no gerenciador de tarefas.... Depois de muito tempo preso no gerenciador aparece essa mensagem "Runtime error at 00d27f22 " e só consigo fechar a aplicação manualmente no gerenciador de tarefas.... Para fechar a aplicação no onclose do formulário utilizo
fecha_dataset(Sender as TForm);//aqui fecho todos os dataset
Action := caFree;
Form1 := nil;
// codigo da função fecha_dataset
Procedure TForm1.fecha_dataset(formulario: TForm);
var
i: integer;
begin
// fecha dataset dos formularios
for i := 0 to formulario.ComponentCount - 1 do
begin
try
if formulario.Components[i] is TClientDataSet then
TClientDataSet(formulario.Components[i]).Close;
if formulario.Components[i] is TDataSet then
TDataSet(formulario.Components[i]).Close;
if formulario.Components[i] is TSQLStoredProc then
TSQLStoredProc(formulario.Components[i]).Active := false;
except
end;
end;
end;
alguem já teve esse problema ?
Tenho um módulo no meu sistema em delphi que chama um outro exe, e aguarda finalização desse segundo exe para continuar o processo até ai ok....Em um cliente apenas com Win7 32 bits acontece que quando fecho o segundo exe ele "fecha" porem continua no gerenciador de tarefas.... Depois de muito tempo preso no gerenciador aparece essa mensagem "Runtime error at 00d27f22 " e só consigo fechar a aplicação manualmente no gerenciador de tarefas.... Para fechar a aplicação no onclose do formulário utilizo
fecha_dataset(Sender as TForm);//aqui fecho todos os dataset
Action := caFree;
Form1 := nil;
// codigo da função fecha_dataset
Procedure TForm1.fecha_dataset(formulario: TForm);
var
i: integer;
begin
// fecha dataset dos formularios
for i := 0 to formulario.ComponentCount - 1 do
begin
try
if formulario.Components[i] is TClientDataSet then
TClientDataSet(formulario.Components[i]).Close;
if formulario.Components[i] is TDataSet then
TDataSet(formulario.Components[i]).Close;
if formulario.Components[i] is TSQLStoredProc then
TSQLStoredProc(formulario.Components[i]).Active := false;
except
end;
end;
end;
alguem já teve esse problema ?
Ederson Rodrigues
Curtidas 0
Respostas
Fernando Ito
20/07/2019
Oi Ederson Rodrigues,
Já tentou fazer um teste com o ExitProcess(0) ?
Se ainda não, inclua este método na hora que você manda fechar o segundo executável, acredito que irá resolver o seu problema.
Um abraço,
ITO
Já tentou fazer um teste com o ExitProcess(0) ?
Se ainda não, inclua este método na hora que você manda fechar o segundo executável, acredito que irá resolver o seu problema.
Um abraço,
ITO
GOSTEI 0