Fechar Form: Release ou Free ??
pessoal, eu criei um FormPadrao (pai) no qual eu derivo os forms (filhos) do meu programa, então ja deixo um botão Fechar (close) no form e no evento OnClose do form pai eu uso
[i:4a2512ba2d]Action := caFree;
Release;[/i:4a2512ba2d]
Não se ao certo se é necessário usar essas duas linhas, ou se bastasse usar o [b:4a2512ba2d]Action := caFree[/b:4a2512ba2d] ou apenas [b:4a2512ba2d]o Release[/b:4a2512ba2d]
Alguém poderia me dar um help,
abraço,
[i:4a2512ba2d]Action := caFree;
Release;[/i:4a2512ba2d]
Não se ao certo se é necessário usar essas duas linhas, ou se bastasse usar o [b:4a2512ba2d]Action := caFree[/b:4a2512ba2d] ou apenas [b:4a2512ba2d]o Release[/b:4a2512ba2d]
Alguém poderia me dar um help,
abraço,
Eniorm
Curtidas 0
Respostas
Alcantarus
29/10/2005
[quote:083e1a51ed=´Enio Marconcini´]pessoal, eu criei um FormPadrao (pai) no qual eu derivo os forms (filhos) do meu programa, então ja deixo um botão Fechar (close) no form e no evento OnClose do form pai eu uso
[i:083e1a51ed]Action := caFree;
Release;[/i:083e1a51ed]
Não se ao certo se é necessário usar essas duas linhas, ou se bastasse usar o [b:083e1a51ed]Action := caFree[/b:083e1a51ed] ou apenas [b:083e1a51ed]o Release[/b:083e1a51ed]
Alguém poderia me dar um help,
abraço,[/quote:083e1a51ed]
Caro amigo,
Eu particularmente uso no Evento OnClose do Form:
FreeAndNil(fmFormulario), onde fmFormulario é o nome de seu Form.
Abraços,
Alcantarus.
[i:083e1a51ed]Action := caFree;
Release;[/i:083e1a51ed]
Não se ao certo se é necessário usar essas duas linhas, ou se bastasse usar o [b:083e1a51ed]Action := caFree[/b:083e1a51ed] ou apenas [b:083e1a51ed]o Release[/b:083e1a51ed]
Alguém poderia me dar um help,
abraço,[/quote:083e1a51ed]
Caro amigo,
Eu particularmente uso no Evento OnClose do Form:
FreeAndNil(fmFormulario), onde fmFormulario é o nome de seu Form.
Abraços,
Alcantarus.
GOSTEI 0
Eniorm
29/10/2005
reeAndNil(fmFormulario), onde fmFormulario é o nome de seu Form
Certo, mas no meu caso que teria que colocar o FreeAndNill no formPadrao,
FreeAndNill(formPadrao)
isso não funcionaria para os forms filhos que foram herdados de formPadrao,
como proceder neste caso?
GOSTEI 0
Alcantarus
29/10/2005
[quote:3887484f19=´Enio Marconcini´]
Certo, mas no meu caso que teria que colocar o FreeAndNill no formPadrao,
FreeAndNill(formPadrao)
isso não funcionaria para os forms filhos que foram herdados de formPadrao,
como proceder neste caso?[/quote:3887484f19]
Coloque no OnClose dos Filhos tb...
Abracos,
Alcantarus.
reeAndNil(fmFormulario), onde fmFormulario é o nome de seu Form
Certo, mas no meu caso que teria que colocar o FreeAndNill no formPadrao,
FreeAndNill(formPadrao)
isso não funcionaria para os forms filhos que foram herdados de formPadrao,
como proceder neste caso?[/quote:3887484f19]
Coloque no OnClose dos Filhos tb...
Abracos,
Alcantarus.
GOSTEI 0
Michael
29/10/2005
Olá!
Como liberar um form depende essencialmente de como ele foi criado.
É preciso ter em mente o seguinte: se os forms forem criados automaticamente junto com a aplicação, então ela é que deve liberá-los. Se forem criados via código, com a possibilidade se serem destruídos posteriormente, é necessário ter certeza de passar como Owner [b:bcb4b8a331]nil[/b:bcb4b8a331], e não [b:bcb4b8a331]Self [/b:bcb4b8a331]nem [b:bcb4b8a331]Application[/b:bcb4b8a331].
Não proceder assim vai causar memory leaks na aplicação, reduzindo sua perfomance e em alguns casos, travar o PC.
Esse é um excelente artigo sobre criação de formulários: [url=http://delphi.about.com/od/adptips2005/qt/nilselfapp.htm]TForm.Create(?) Nil, Self or Application?[/url]
[]´s
Como liberar um form depende essencialmente de como ele foi criado.
É preciso ter em mente o seguinte: se os forms forem criados automaticamente junto com a aplicação, então ela é que deve liberá-los. Se forem criados via código, com a possibilidade se serem destruídos posteriormente, é necessário ter certeza de passar como Owner [b:bcb4b8a331]nil[/b:bcb4b8a331], e não [b:bcb4b8a331]Self [/b:bcb4b8a331]nem [b:bcb4b8a331]Application[/b:bcb4b8a331].
Não proceder assim vai causar memory leaks na aplicação, reduzindo sua perfomance e em alguns casos, travar o PC.
Esse é um excelente artigo sobre criação de formulários: [url=http://delphi.about.com/od/adptips2005/qt/nilselfapp.htm]TForm.Create(?) Nil, Self or Application?[/url]
[]´s
GOSTEI 0
Raserafim
29/10/2005
no OnClose do form padrão vc pode colocar:
o Self vai ser substituido pelo nome do form atual. e retire o inherited
FreeAndNill(Self)
o Self vai ser substituido pelo nome do form atual. e retire o inherited
GOSTEI 0
Martins
29/10/2005
Poderia ser assim tb.!
var FClient : TForm; begin FClient := TF_Clientes.Create(nil) ; try FClient.ShowModal; finally FClient.Free; end; end;
GOSTEI 0