Buscar

Criando form dinamicamente (sdi)

Código

Com certeza criar os forms que você vai utilizar em tempo de execução é uma das grandes "sacadas" do Delphi, uma tarefa não tão complicada mas com várias alternativas de como ser executada.
Vamos supor inicialmente que você está trabalhando com uma aplicação SDI(Single Document Interface) ou documento de interface simples, utilizando essa forma de desenvolvimento você tem janelas sobre janelas, o Delphi é um exemplo disso, para criar um form

1 - Crie um projeto novo (SDI), o Delphi automaticamente cria o Form1.

2 - Crie um Form Novo, ele receberá o nome de Form2.

3 - Va em Options/Project, você vai ver 2 list boxes, o da esquerda contem os forms que devem ser criados automaticamente quando sua aplicação for iniciada, os 2 forms devem estar ai, pois bem mova Form2 para o List Box da direita que deve conter os forms

Nesse momento vc retirou do Delphi a obrigação de criar o Form2, se você não o criar e em algum momento fizer referencia a ele isso deve causar um erro.

4 - Ok, esqueça temporariamente Form2, em Form1 crie um botão e digite o código abaixo em seu evento:

Form1.Button1Click

implementation
{$R *.DFM}
uses Unit2;
procedure TForm1.Button1Click(Sender: TObject);
begin
Form2 := TForm2.Create(self);
Form2.Show;
end;
end.

5 - Observe o uses criado logo após {$R *.DFM}, ele deve fazer referência a Unit de Form2, que no caso do meu exemplo chama-se Unit2.
Pronto, com esses pequenos cuidados você já estara criando seus forms em tempo de execução.

Agora uma dica interessante, se você executar esse programa você vai ver que quando Form2 for criado o usuário pode clicar em Form1 e esse receberá o foco, coisa que pode não ser interessante.

Para evitar este tipo de comportamento da sua aplicação utilize ShowModal não Show para chamar o segundo form

Form2 := TForm2.Create(self);
Form2.ShowModal;

O ShowModal vai fazer com que a aplicação fique com Form2 permanentemente em primeiro plano, Form1 não poderá ser acessado até que Form2 sejá fechado.

Publicidade

Vote na dica




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


Detalhes da dica

Categoria: Forms
Adicionada dia: 09/02/05
Por: Jose Ribeiro
Visualizada: 2374 vezes

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