Fórum Velha duvida para liberar memoria( Form ) #335577

03/01/2007

0

Opa Galera,

já li de tudo sobre liberar memória de um formulário criado mas ainda possuo duvidas

para a criação normal eu utilizo:

Form := TForm.Create(Self);
Form.ShowModal;

e no onClose do Form eu dou um:

Action := caFree;
Form := NIL

Até aqui está correto?

Mas existem situação em que eu preciso recuperar alguns valores do formulário

entao eu coloco

Form2 := TForm2.Create(Self);

if Form2.ShowModal = mrOk then
label.caption := QueryNome.AsString;

Neste caso, se eu colocar no onclose do Form2

Form2 := NIL

ele nao me recupera os valores

O Action funciona

Action := caFree;

Como devo prosseguir neste caso?

Nos últimos tempos, cansado de utilizar este mesmo formato, resolvi dar uma mudada. Agora crio os formulário com

Form3 := TForm3.Create(NIL);
Form3.ShowModal;

e no onclose dou um
Action := caFree
Form3 := NIL

e se precisar recuperar algum valor dou apenas um
Action := caFree

Por Favor, alguem me de uma luz pois nao sei o que pode estar ocorrendo por trás do meu sistema.

Obrigado Abraços e Aguardo Repostas


Tremonti

Tremonti

Responder

Posts

03/01/2007

Aroldo Zanela

Colega,

Sempre utilizo assim para formulários SDI (apesar da redundância):

  Application.CreateForm(TFormAZRpt1, FormAZRpt1);
  try
    FormAZRpt1.ShowModal;
  finally
    FormAZRpt1.Release;
    FreeAndNil(FormAZRpt1);
  end;



Responder

Gostei + 0

03/01/2007

Tremonti

e no onclose do formulário criado, vc nao coloca nada?!


Responder

Gostei + 0

03/01/2007

Aroldo Zanela

Colega,

No caso de formulários SDI (Modais) e não coloco nada no OnClose.


Responder

Gostei + 0

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

Aceitar