sábado, 6 de junho de 2009

Criando formulários

{a) Application.CreateForm(TfmClientes, fmClientes);

Cria o Form; o proprietário é a aplicação.



b) fmClientes := TForm.Create(self);

Cria o Form; o proprietário é ele mesmo.



c) fmClientes := TForm.Create(Application);

Cria o Form; o proprietário é a aplicação.



d) fmClientes := TForm.Create(nil);

Cria o Form; teoricamente sem proprietário; na prática é a aplicação.



e) fmClientes := TfmClientes.Create(self);

Cria o Form; o proprietário é ele mesmo.



f) fmClientes := TfmClientes.Create(Application);

Cria o Form; o proprietário é a aplicação.



g) fmClientes := TfmClientes.Create(nil);

Cria o Form; teoricamente sem proprietário; na prática é a aplicação.



Poderiam me informar a diferenca entre elas?

Quando você cria um Form dinamicamente:

1. se criar através de CreateForm, que é um método de TApplication, você passa como parâmetro a instância da classe e o nome do seu objeto (TfmClientes, fmClientes);

2. se criar através de Create - método de TForm, entre outros - você passa como parâmetro o proprietário do componente criado (no caso o Form).

2.1 se o proprietário for a aplicação, o Form só será destruído quando você finalizar o aplicativo ou se você declarar Free ou Destroy no seu programa; (casos a, c, d, f, g);

2.2 se o proprietário for ele mesmo (self), o form terá que ser destruído por você;

2.3 se você criar, por exemplo, Form2 e passar como proprietário Form1; no momento em que Form1 for destruído, Form2 também o será.



Quanto à melhor maneira, depende de como você quer controlar a aplicação, mas leve em conta que enquanto um objeto não é destruído, ele está na memória. }

Nenhum comentário:

Postar um comentário