quarta-feira, 19 de janeiro de 2011

Criando formulários

Qual a melhor maneira de criar forms em tempo de execucao:

 

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