Velha duvida para liberar memoria( Form )
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
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
Curtidas 0
Respostas
Aroldo Zanela
03/01/2007
Colega,
Sempre utilizo assim para formulários SDI (apesar da redundância):
Sempre utilizo assim para formulários SDI (apesar da redundância):
Application.CreateForm(TFormAZRpt1, FormAZRpt1); try FormAZRpt1.ShowModal; finally FormAZRpt1.Release; FreeAndNil(FormAZRpt1); end;
GOSTEI 0
Tremonti
03/01/2007
e no onclose do formulário criado, vc nao coloca nada?!
GOSTEI 0
Aroldo Zanela
03/01/2007
Colega,
No caso de formulários SDI (Modais) e não coloco nada no OnClose.
No caso de formulários SDI (Modais) e não coloco nada no OnClose.
GOSTEI 0