• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

xlo620

[Delphi] Carregar nova forma

9 mensagens neste tópico

boas. a minha duvida é a seguinte, alguem sabe o codigo em delphi para quando clickar num botao apareca uma nova form?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Olá,

Creio que este Tópico deveria estar na secção dedicada ao DELPHI (http://www.portugal-a-programar.pt/forum/17-delphilazarus/), e não aqui!

Em relação à tua questão, podes fazer o seguinte, por exemplo, ter um botão no Form actual que ao ser pressionado vai abrir um novo form:

procedure TfrmFormActual.btAbreNovaFormClick(Sender: TObject);
begin
    frmNovaForm := TfrmNovaForm.Create(Self);   // Criar a Nova Form
    frmNovaForm.ShowModal;            // Mostrar a form e passar o controlo para ela e mantem-se activa e sobreposta a' existente, ate' fazer o CLOSE nela
    frmNovaForm.Release;                // Libertar memoria 
end;

O form "NovaForm" deve criar no Designer, mas depois não a colocas para ser aberta na execução. Só quando for pressionado o botão é que ela é criada e mostrada.

Cumprimentos.

LuBoc

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

uses... unit2;

...

form2.show;

ja tinha conseguido com este comando ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Olá,

uses... unit2;

...

form2.show;

ja tinha conseguido com este comando ;)

E nesse teu programa, em algum momento existe o form2 := Tform2.Create(Self); ?

ou bastou fazer o form2.show ?

Digo isto pelo seguinte, quando crias um projecto em Delphi podes dizer "no projecto" que forms/units são carregadas quando o programa é executado. Normalmente o que se faz é deixar a carregar o Form principal e se existir a parte de base de dados. Com isto, e principalmente em projectos grandes, evita-se "encher a memória" com "material" desnecessário.

No exemplo indicado por mim, é para essa situação, em que o Form ainda não está carregado, então procede-se à sua criação e depois é mostrado ao utilizador.

Se o teu programa for pequeno, então não precisas preocupar-te mt com isso.

Cumprimentos,

LuBoc

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Preocupar com a forma como o programa executa é sempre importante :P

O LuBoc tem razão, penso que o que aconteceu é que o Delphi, o IDE, está a gerir os forms e por isso o código form2.show está a funcionar, a forma correcta seria não deixar o Delphi gerir os forms, ou pelo menos deixá-lo gerir apenas o principal, e gerires os outros manualmente para evitar que um form seja carregado quando não é preciso.

Se for uma janela de opções, por exemplo, pode nunca ser usada e no entanto, da forma como estás a fazer, estará sempre em memória.

Já agora, e para realçar, este tópico passou-me completamente ao lado visto estar na secção errada, o que vai deixar de acontecer ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora