liberar memoria
24/02/2003
0
boa tarde a todos.
como posso fazer que execute um programa e quando sair ele liberar memoria, como posso fazer isso?
OBRIGADO PELA ATENCAO
e-mail
tarcisiofrancisco@bol.com.br
como posso fazer que execute um programa e quando sair ele liberar memoria, como posso fazer isso?
OBRIGADO PELA ATENCAO
tarcisiofrancisco@bol.com.br
Anonymous
Curtir tópico
+ 0
Responder
Posts
24/02/2003
Anonymous
Olá, Tarcísio!
Para liberar memória de uma aplicação você deve fazer o seguinte:
Em todo form existe um evento OnClose, ok?
No form principal da sua aplicação, no evento OnClose dele você põe a seguinte linha:
Application.Terminate;
Isso já desaloca toda a memória que foi alocada para sua aplicação.
No caso dos outros forms (os que são chamados durante sua aplicação), no evento OnClose deles, você põe as seguintes linhas:
Form1.Release;
Form1 := NIL;
Lembrando que se o nome do seu form for FormCadastro, por exemplo, fica:
FormCadastro.Release;
FormCadastro := NIL;
Explicando:
A primeira linha , o ´release´, ele libera a memória que foi alocada para o form em questão.
A segunda linha atribui NIL (Nulo) ao ponteiro (Form1).
Então, a melhor maneira de se abrir um Form é:
IF (Form1 = NIL) THEN
Form1 := TForm1.Create(Application);
Form1.Show;
Ou seja, ele testa se o ponteiro Form1 está apontando para NULO. Se o Form for igual a NIL, ele chama o construtor do Form. Independente do resultado do IF, ele sempre tem que mostrar o Form, por isso, a linha Form1.Show está fora do bloco IF.
Para liberar memória de uma aplicação você deve fazer o seguinte:
Em todo form existe um evento OnClose, ok?
No form principal da sua aplicação, no evento OnClose dele você põe a seguinte linha:
Application.Terminate;
Isso já desaloca toda a memória que foi alocada para sua aplicação.
No caso dos outros forms (os que são chamados durante sua aplicação), no evento OnClose deles, você põe as seguintes linhas:
Form1.Release;
Form1 := NIL;
Lembrando que se o nome do seu form for FormCadastro, por exemplo, fica:
FormCadastro.Release;
FormCadastro := NIL;
Explicando:
A primeira linha , o ´release´, ele libera a memória que foi alocada para o form em questão.
A segunda linha atribui NIL (Nulo) ao ponteiro (Form1).
Então, a melhor maneira de se abrir um Form é:
IF (Form1 = NIL) THEN
Form1 := TForm1.Create(Application);
Form1.Show;
Ou seja, ele testa se o ponteiro Form1 está apontando para NULO. Se o Form for igual a NIL, ele chama o construtor do Form. Independente do resultado do IF, ele sempre tem que mostrar o Form, por isso, a linha Form1.Show está fora do bloco IF.
Responder
24/02/2003
Stanne
Assim que você testar poste sua resposta aqui, Tarcísio.
Eu que postei a primeira resposta p/ você, mas tinha esquecido de logar :)
Eu que postei a primeira resposta p/ você, mas tinha esquecido de logar :)
Responder
Clique aqui para fazer login e interagir na Comunidade :)