Liberando Excel da memória
Oi
Uso Delphi 6
Estou tendo que transferir dados de meu gdb para o excel, consegui. Mas depois que é feito a transferência o excel não sai da memória, como faço isso.
Na rotina, o Excel é criado por uma variável para que seja uma abertura temporária. Só que essa variável não está me permitindo liberá-lo da memória.
Tentei:
Excel.Close;
Excel.Free;
Mas ele indica que close e free não são aplicáveis à variável.
Como eu posso fazer então.
Agradeço antecipadamente qualquer ajuda.
Sandro
Uso Delphi 6
Estou tendo que transferir dados de meu gdb para o excel, consegui. Mas depois que é feito a transferência o excel não sai da memória, como faço isso.
Na rotina, o Excel é criado por uma variável para que seja uma abertura temporária. Só que essa variável não está me permitindo liberá-lo da memória.
Tentei:
Excel.Close;
Excel.Free;
Mas ele indica que close e free não são aplicáveis à variável.
Como eu posso fazer então.
Agradeço antecipadamente qualquer ajuda.
Sandro
Salupe
Curtidas 0
Respostas
Salupe
21/03/2005
sobe
GOSTEI 0
Semchance
21/03/2005
Pessoal, estou com o mesmo problema, e não consigo resolver, alguem pode ajudar ?
GOSTEI 0
Adalberto
21/03/2005
Bem, o único teste que fiz foi o seguinte...
// Fecha o Excel
Excel.Quit;
// Feito isso, se você abrir o Gerenciador de Tarefas o Excel ainda estará constando como aberto. Ele sairá do Gerenciador assim que você encerrar a sua aplicação...
Espero que dê para quebrar o galho...
// Fecha o Excel
Excel.Quit;
// Feito isso, se você abrir o Gerenciador de Tarefas o Excel ainda estará constando como aberto. Ele sairá do Gerenciador assim que você encerrar a sua aplicação...
Espero que dê para quebrar o galho...
GOSTEI 0
Adalberto
21/03/2005
Verificando o Help do Delphi, há uma dica que diz o seguinte:
Se você usa a função CreateOLeObject para carregar o Excel e o retorno dessa função é atribuída a uma variável do tipo Variant, você pode liberar a interface atribuindo a constante Unassigned aquela variável...
Espero ter ajudado...
Se você usa a função CreateOLeObject para carregar o Excel e o retorno dessa função é atribuída a uma variável do tipo Variant, você pode liberar a interface atribuindo a constante Unassigned aquela variável...
Espero ter ajudado...
GOSTEI 0
Adalberto
21/03/2005
Fiz mais um teste...
Depois de
Excel.Quit; // Fecha o Excel
// Atribuir à variável o valor Null;
Excel := Null;
// O Excel não estará mais no Gerenciador de Tarefas...
blz ?
Depois de
Excel.Quit; // Fecha o Excel
// Atribuir à variável o valor Null;
Excel := Null;
// O Excel não estará mais no Gerenciador de Tarefas...
blz ?
GOSTEI 0
Salupe
21/03/2005
A melhor solução que encontrei para transferir para o excel, assim como para o word ou pdf foi trocar de componentes e utilizar o Fortes Report, ele tem componentes que fazem a gravação do conteúdo do relatório no formato que você colocou na tela.
Além de a facilidade e confiabilidade dele ser muito maior.
Além de a facilidade e confiabilidade dele ser muito maior.
GOSTEI 0