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....
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
Curtir tópico
+ 0
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
Clique aqui para fazer login e interagir na Comunidade :)