Application.CreateForm(TForm, Form) ou Form := TForm.Create(Application)

22/10/2018

0

De acordo com o tópico, qual seria a diferença entre "Application.CreateForm(TForm, Form)" ou "Form := TForm.Create(Application)"?
Eu sei q tem diferenças entre:
TForm.Create(nil),
TForm.Create(self) e;
TForm.Create(Application)

Mas entre os citados no tópico, tem?
Fernando Duardes

Fernando Duardes

Responder

Posts

23/10/2018

Emerson Nascimento

Da forma como apresentado não há diferença:

Application.CreateForm(TForm, Form) - cria um formulário, da classe TForm, associado à variável Form, cujo owner será o objeto Application.
Form := TForm.Create(Application) - cria um formulário, da classe TForm, associado à variável Form, cujo owner será o objeto Application.

usa-se TForm.Create() quando você quer indicar o owner do form. Se não precisa indicar o owner ou o mesmo pode ser Application, pode usar sempre Application.CreateForm().

Se você utilizar Application e não destruir o form manualmente, ele será destruído somente quando sair da aplicação, o que pode ocasionar memory leak ou apenas causar lentidão, por conta de manter em memória algo que não é mais utilizado.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar