Package, abre form mas não libera

12/05/2008

0

Muito estranho...

aplicativo.exe
   |
   |-> modulo.bpl (abre um form1)
                            |
                            |-> este form1 tem um botao
                                  que abre outro form2 contido
                                  no mesmo modulo.bpl


Acontece que, ao tentar fechar o form2 este não é liberado... eis os codigos que uso atualmente

no modulo.bpl
procedure AbreForm;
begin
  if form1 = Nil then
    form1 := tform1.Create(Nil);
  form1.Show;
end;
...
exports
  AbreForm;


no botão do form1 para abrir o form2
if form2 = nil then
  form2 := tform2.Create(Nil);
form2.Show;


no evento OnClose de ambos os forms
// no form1
FreeAndNil(Form1);

// no form2
FreeAndNil(Form2);


acontece que ao fechar o form2 (que foi instanciado pelo botão do form1), o form2 não é liberado pelo FreeAndNil no evento OnClose, somente o form1

muito estranho não? alguém sabe?

abraços


Eniorm

Eniorm

Responder

Posts

13/05/2008

Eniorm

vamos dar um [b:1736f4c778]up[/b:1736f4c778] :D


Responder

13/05/2008

Rodc

Você está tentando destruir o form2 dentro do OnClose dele mesmo? Neste caso o correto seria usar o Release().


Responder

13/05/2008

Eniorm

é exatamente isso
FreeAndNil no onClose do form2

seguinto o método normal com MDI sem estar modularizado em pacotes bpl, posso por o FreeAndNil apenas no onClose que funciona.

Vou testar mas acho que a diferença entre o Release e o FreeAndNil não iria interferir... mas vou testar pra ver...

se eu usar Release, tenho que acrescentar o form2 := Nil
usando o FreeAndNil ele já libera e seta o ponteiro do form para nil


Responder

13/05/2008

Rodc

[quote:64281ca982=´Enio Marconcini´]se eu usar Release, tenho que acrescentar o form2 := Nil
usando o FreeAndNil ele já libera e seta o ponteiro do form para nil[/quote:64281ca982]
Então faça o código abaixo no OnClose que é a mesma coisa que o FreeAndNil():
Release();
Form2 := nil;



Responder

13/05/2008

Eniorm

é oq eu vou testar hj a noite pra saber se resolve :D

amanhã posto os resultados


Responder

14/05/2008

Eniorm

opa galera!

realmente, troquei o FreeAndNil(NomeForm) por

Release;
NomeForm := Nil


resolveu :D


Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

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

Aceitar