Delphi - Criar / Destruir formulários
23/06/2020
0
Boa noite!
Estou com algumas dúvidas referente a criação de formulários, no caso do Form1 := TForm1.Create(nil) e Form1 := TForm1.Create(self)...
Realizando algumas pesquisas, ao meu ver seria da seguinte forma:
utilizando nil...
onCreate:
Form1 := TForm1.Create(nil)
onDestroy:
FreeAndNil(Form1);
E no caso do self "é destruído quando o formulário / self for destruído". A dúvida é.. se eu utilizar o Self, será destruído automaticamente?
Não sei se me fiz entender, mas agradeço desde já.
Estou com algumas dúvidas referente a criação de formulários, no caso do Form1 := TForm1.Create(nil) e Form1 := TForm1.Create(self)...
Realizando algumas pesquisas, ao meu ver seria da seguinte forma:
utilizando nil...
onCreate:
Form1 := TForm1.Create(nil)
onDestroy:
FreeAndNil(Form1);
E no caso do self "é destruído quando o formulário / self for destruído". A dúvida é.. se eu utilizar o Self, será destruído automaticamente?
Não sei se me fiz entender, mas agradeço desde já.
Nomad
Curtir tópico
+ 0
Responder
Post mais votado
24/06/2020
Boa noite!
Estou com algumas dúvidas referente a criação de formulários, no caso do Form1 := TForm1.Create(nil) e Form1 := TForm1.Create(self)...
Realizando algumas pesquisas, ao meu ver seria da seguinte forma:
utilizando nil...
onCreate:
Form1 := TForm1.Create(nil)
onDestroy:
FreeAndNil(Form1);
E no caso do self "é destruído quando o formulário / self for destruído". A dúvida é.. se eu utilizar o Self, será destruído automaticamente?
Não sei se me fiz entender, mas agradeço desde já.
Estou com algumas dúvidas referente a criação de formulários, no caso do Form1 := TForm1.Create(nil) e Form1 := TForm1.Create(self)...
Realizando algumas pesquisas, ao meu ver seria da seguinte forma:
utilizando nil...
onCreate:
Form1 := TForm1.Create(nil)
onDestroy:
FreeAndNil(Form1);
E no caso do self "é destruído quando o formulário / self for destruído". A dúvida é.. se eu utilizar o Self, será destruído automaticamente?
Não sei se me fiz entender, mas agradeço desde já.
Bom dia.
A sua resposta está aqui: http://www.planetadelphi.com.br/dica/6555/varias-formas-de-se-iniciar-um-form
Leandro Carvalho
Responder
Mais Posts
24/06/2020
Marcos Junior
Bom dia...
Meu chefe a meu ver a melhor maneira tanto para se criar a destruir o form para garantir que o mesmo seja limpo tanto o ponteiro como da memoria seria assim.:
Ao criar o form.:
if (frmExemplo = nil) then
Application.CreateForm(TfrmExemplo, frmExemplo);
frmExemplo.Show;
e colocar no vento OnClose do form.:
Action := caFree;
e colocar no evento onDestroy.:
frmExemplo := nil;
Desta maneira eu sempre verifico antes de criar se ele existe e sempre que fechar o form eu limpo o ponteiro e o mesmo da memoria.
Meu chefe a meu ver a melhor maneira tanto para se criar a destruir o form para garantir que o mesmo seja limpo tanto o ponteiro como da memoria seria assim.:
Ao criar o form.:
if (frmExemplo = nil) then
Application.CreateForm(TfrmExemplo, frmExemplo);
frmExemplo.Show;
e colocar no vento OnClose do form.:
Action := caFree;
e colocar no evento onDestroy.:
frmExemplo := nil;
Desta maneira eu sempre verifico antes de criar se ele existe e sempre que fechar o form eu limpo o ponteiro e o mesmo da memoria.
Responder
Clique aqui para fazer login e interagir na Comunidade :)