GARANTIR DESCONTO

Fórum Delphi - Criar / Destruir formulários #611538

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á.
Nomad

Nomad

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á.


Bom dia.

A sua resposta está aqui: http://www.planetadelphi.com.br/dica/6555/varias-formas-de-se-iniciar-um-form

Leandro Carvalho

Leandro Carvalho
Responder

Gostei + 1

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.
Responder

Gostei + 1

24/06/2020

Nomad

Obrigado a ambos pelas respostas!
Responder

Gostei + 0

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

Aceitar