Buscar

Criando formulários em tempo de execução

Código

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.
 

Publicidade

Vote na dica




Quantidade de votos: 0 votos
Aceitação: 0%


Detalhes da dica

Categoria: Forms
Adicionada dia: 15/06/10
Por: Mario
Visualizada: 5701 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009