Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Arrasted

Mostrar outro form atraves do mainMenu

Recommended Posts

Boa tarde pessoal, como podem ver estou com uma dúvioda estúpida.Tenho um MainMenu. Tenho varias opções nele...Como faço para que quando u clicar no item desejado ele abra o form respectivo?tentei com o "form2.ShowModa;" nao rolou..tentei refernciar as units...tbm nao deu ...deem um ajudinha por favor.[]'s e Bom Ano para TodosÉrico

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pessoal, quebrei a cabeça aqui e consegui da seguinte forma:

Form2 := TForm2.Create(self);

 

Não sei se esta certo, mas funcionou..

 

Abraços e Bom Ano

 

Érico

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Érico,

 

A exibiçao de Forms depende da propriedade FormStyle e se eles são criados automaticamente no inicio do programa...

 

Forms MDI tem como padrão serem criados manualmente... Se nao for MDI eles podem ficar em autocreate ou não...

 

Entre em Project, Options e clique na aba Forms... observe que do lado esquerdo estão os Forms que serao criados automaticamente....

 

Para forms que são criados automaticamente, apenas basta efetuar um SHOW ou SHOWMODAL para exibilos... pois eles já existem na memoria, apenas estão com visible = false...

 

Para Forms que nao foram criados... o programador deve cria-los e destrui-los manualmente... assim como você fez acima... Porem é importante destruir o form quando ele nao for mais necessário... ou evitar de criar outra instancia dele na memoria, caso já exista uma....

 

A falha do código que você implementou acima, é que toda vez que o usuário clicar no ItemMenu, um novo form será criado, e nunca será destruido... ocupando memoria... Para corrigir isso você pode escrever no evento ONCLOSE do Form

 

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);begin  Action := caFree;end;
Isso faz o proprio Form se liberar da memoria...

 

você pode fazer tudo manualmente tb...

 Form1 := TForm1.Create( self  );  { cria o Form na memoria }  try     Form1.ShowModal;   { exibe o Form }  finally     Form1.Free;    { Libera ele da Memoria }  end;

As tecnicas acima se aplicam somente o Forms exibidos com SHOWMODAL, se você for usar SHOW, muda um pouco pois o Form poderá ser aberto varias vezes...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.