problemas com form na memoria

25/02/2006

0

pessoal eu faço a seguinte verificacao antes de abrir uma query

if form_clientes <> nil then
begin
comandos
....
end

se o form NÃO estiver criado, então eu abro uma query.


mas dá um erro de access violation, como se o form ainda estivesse criado...COMO FAÇO PARA DELETAR O FORM DA MEMÓRIA...

já usei ACTION:=CAFREE no evento ONCLOSE, mas não funcionou....


Rafael Santana

Rafael Santana

Responder

Posts

25/02/2006

Marco Salles

mas dá um erro de access violation, como se o form ainda estivesse criado...COMO FAÇO PARA DELETAR O FORM DA MEMÓRIA...


este assunto é sempre muito discutido... Depende de com voce esta criando os seus forms se são auto criados se são MDIS etc...

o que acontece que a instrução :
if form_clientes <> nil then
testa apenas se o ponteiro não e nil , mas não verifica se este ponteiro é valido

no seu caso posso arriscar um palpite por este comentario

já usei ACTION:=CAFREE no evento ONCLOSE, mas não funcionou....


alem do cafree coloque nomeform:=nil , no evento onclose
tipo isso

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
form2:=nil;
action:=Cafree;
end;


existe ainda métodos como o FreandNil etc.. mas com eu disse , o melhor ataque depende de com esses forms estão sendo criados...


Responder

25/02/2006

Rafael Santana

amigo...cara, deu certinho..

muito obrigado

:D


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar