Action:=caFree x FreeAndNil()
Substituí Action:=caFree por FreeAndNil() em meus formulários e tive um problema: ao fechar a aplicação, o processo continuava carregado. Retornei ao formato anterior, no formulário principal, e o problema foi resolvido.
Perguntas:
a) FreeAndNil(<Instância do Form>) é equivalente aos comandos Action:=caFree + <Instância do Form>:=nil ?
b) Action:=caFree no formulário principal libera todos os recursos alocados pela aplicação?
c) Quando usar um e outro?
Grato pela atenção.
Perguntas:
a) FreeAndNil(<Instância do Form>) é equivalente aos comandos Action:=caFree + <Instância do Form>:=nil ?
b) Action:=caFree no formulário principal libera todos os recursos alocados pela aplicação?
c) Quando usar um e outro?
Grato pela atenção.
José Cordeiro
Curtidas 0
Respostas
Nildo
05/12/2005
[quote:d824ab6413=´José Henrique Cordeiro´]Substituí Action:=caFree por FreeAndNil() em meus formulários e tive um problema: ao fechar a aplicação, o processo continuava carregado. Retornei ao formato anterior, no formulário principal, e o problema foi resolvido.
Perguntas:
a) FreeAndNil(<Instância do Form>) é equivalente aos comandos Action:=caFree + <Instância do Form>:=nil ?
b) Action:=caFree no formulário principal libera todos os recursos alocados pela aplicação?
c) Quando usar um e outro?
Grato pela atenção.[/quote:d824ab6413]
São duas coisas diferentes. o Action := caFree funciona dessa maneira:
Quando você criar um form e dar um ShowModal nele por exemplo, seu for ficaria assim:
Se você usar o Action := caFree no SeuForm, evitaria que você utilizasse o SeuForm.Free no momento em que você o chamou.
Eu sempre dispenso o uso do FreeAndNil, mas o que ele faz é liberar um objeto da memória e atribuir NIL à variável dele.
Quando a colocar o Action := caFree no form principal, não precisa, pois quando você fechar seu Form Principal sua aplicação será fechada e todos os recursos utilizados por ela será liberado da memória.
Perguntas:
a) FreeAndNil(<Instância do Form>) é equivalente aos comandos Action:=caFree + <Instância do Form>:=nil ?
b) Action:=caFree no formulário principal libera todos os recursos alocados pela aplicação?
c) Quando usar um e outro?
Grato pela atenção.[/quote:d824ab6413]
São duas coisas diferentes. o Action := caFree funciona dessa maneira:
Quando você criar um form e dar um ShowModal nele por exemplo, seu for ficaria assim:
SeuForm := TSeuForm.Create( Application ); SeuForm.ShowModal; SeuForm.Free;
Se você usar o Action := caFree no SeuForm, evitaria que você utilizasse o SeuForm.Free no momento em que você o chamou.
Eu sempre dispenso o uso do FreeAndNil, mas o que ele faz é liberar um objeto da memória e atribuir NIL à variável dele.
Quando a colocar o Action := caFree no form principal, não precisa, pois quando você fechar seu Form Principal sua aplicação será fechada e todos os recursos utilizados por ela será liberado da memória.
GOSTEI 0