Fórum Destruindo referência a Objetos #330793

05/10/2006

0

No meu Form eu crio instâncias de um form dinâmicamente, da seguinte forma:
Procedure XXXXX;
Var
Form: Tform;
begin
Form := Tform.create(self);
Form := Form1; //Passando o Form1 para a variavel Form;
.
. //operações normais...
.
form.release // aqui está o problema
end;

O problema está em como liberar a memória para a Variavel Form, sem fechar o form1 que foi passado para a variável Form ?
Valeu galera...


Cabal

Cabal

Responder

Posts

06/10/2006

Antseralves

form := nil;


Responder

Gostei + 0

06/10/2006

Marco Salles

eu entendo o seguinte


Quando voce faz Form:=Form1,

voce esta atribuindo o ponteiro de form1 para o Form. Nesse momento tanto o objeto Form quanto o objeto Form1 aponta para a mesma posição da memoria , fazendo com que os mesmo passem a referir-se ao mesmo objeto , enquanto que o espaço da memoria que fora reservado quando voce alocou memoria usando o Create , ficara naõ referido , ou seja , sem referencia e portanto não tem como acessa-la

Construçoes desse tipo devem ser evitas no contexto Object pascal


Responder

Gostei + 0

06/10/2006

Siam

Se é que entendí; quando vc faz:
Form := Tform.create(self);
E depois:
Form := Form1;
Já era; vc terá um memory-leak em relação ao Form criado pq vc perdeu a referência.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar