Jump to content
dani_bladt

Form dentro de Panel

Recommended Posts

Boa Noite Galera...

 

Minha duvida é a seguinte!

 

Eu estou querendo colocar uma form dentro do panel...

 

Eu ja coloquei o seguinte código no sistema, no caso ficou assim (FLotes seria o Form2)

 

procedure TFMenu.Panel2Click(Sender: TObject);
begin
FLotes.Parent := Panel2;
FLotes.Showmodal;
end;
Que seria no botão "Lotes" que eu aperto pra abrir a form FLotes, porém ao inves de abrir na Panel ele dá erro...
Tentei colocar em outra procedure esse código, mas ai da um erro.. creio eu que nao seja nesse lugar
procedure TFMenu.M_LOTESClick(Sender: TObject);
begin
FLotes.Parent := Panel2;
FLotes.Showmodal;
end;
Já vi vários lugares o que precisar ser feito para que apareça a form dentro do painel... eu ja tinha conseguido uma vez... mas agora não aparece mais, nao sei o que precisa ser feito... Tentei de tudo...
Espero que me ajudem!
Obrigada.
Edited by DaniBS01

Share this post


Link to post
Share on other sites

Porque está tentando por um outro form num panel? Não seria melhor usar um frame neste caso, como mostrado neste link: http://www.planetadelphi.com.br/dica/198/como-usar-um-frame-em-sua-aplicacao ? Ou criar seu projeto usando o MDI?

 

 

Em todo caso, fiz um teste aqui usando o Delphi 7.... alterei no form2 a propriedade align para AlClient, retirei no BorderIcons os botões de menu e coloquei o código abaixo:

 

 

procedure TForm1.Button1Click(Sender: TObject);
begin

  Form2.Parent := Panel1;
  Form2.Show;

end;

 

O form foi aberto dentro do panel como esperado.... apesar de que neste tipo de situação eu usaria frame ou mdi. Testei usando o ShowModal, também exibiu o form normalmente dentro do painel....

 

Obs.: o botão estava no mesmo form do painel....

Edited by Chrnos

Share this post


Link to post
Share on other sites

Então, nao sei XD

 

Eu fiz isso mesmo que você falou... deixo o form2 como alClient (so que eu não quero tirar o menu da form que no caso aparece o botão fechar, minimizar e tals...) E mesmo assim nao está aparecendo :(

 

 

Porque fechando no caso essa form 2, eu quero abrir outras forms... Eu nunca usei o frame, na real ainda ainda não aprendi isso na faculdade... Se com o frame for possivel abrir mais de uma form... no caso abrir uma form, fechar e depois abrir outras do menu... Eu vou tentar... O importante que dê certo...

 

Vou anexar uma imagem, para que você veja... :)

 

http://i.imgur.com/pPo8wr6.png

 

No caso quando clico na aba "Lotes", teria que aparecer dentro do panel (onde está a borda vermelha) o form... mas nao aparece :T... Ai no caso tem outros menus ali, com Registros e tudo mais... Ai eu abriria outras forms de registros no mesmo panel...

 

Isso é possivel fazer com o frame? É mais prático?

 

Obrigada.

Share this post


Link to post
Share on other sites

Qual versão do delphi você usa? Tem como postar os fontes das duas units para que possamos dar uma olhada? Não consigo ver a imagem aqui no serviço, é tudo bloqueado x.x

 

As vezes dá pra usar outras soluções que não envolvem necessariamente criar outro form, como os pagecontrol... teria que analisar a sua necessidade pra sugerir algo melhor pra usar...

 

Uma pergunta: as telas não podem ser independentes? você chama a segunda tela, faz tudo o que precisa e ao finalizar volta pra tela inicial? Pergunto porque ao dar um form.showmodal você muda o foco da aplicação pra este form, e não deixa usar os anteriormente abertos até este ser finalizado....

Edited by Chrnos

Share this post


Link to post
Share on other sites

Desenterrando o assunto....

Porque o segundo form também fica sem acesso ao abrir ele clicando no botão do form principal?

procedure TfrmPrincipal.btnClientesClick(Sender: TObject);
begin
    frmCadClientes.Parent := pnlAbrirForm;
    frmCadClientes.ShowModal;
end; 

Queria que somente o Form principal ficasse sem acesso até que o segundo form fosse fechado, mais os dois forms são desativados e não consigo mais mexer na aplicação.

Desde já agradeço a ajuda.

Share this post


Link to post
Share on other sites
Em 25/12/2016 at 22:30, aguimarsp disse:

Desenterrando o assunto....

Porque o segundo form também fica sem acesso ao abrir ele clicando no botão do form principal?


procedure TfrmPrincipal.btnClientesClick(Sender: TObject);
begin
    frmCadClientes.Parent := pnlAbrirForm;
    frmCadClientes.ShowModal;
end; 

Queria que somente o Form principal ficasse sem acesso até que o segundo form fosse fechado, mais os dois forms são desativados e não consigo mais mexer na aplicação.

Desde já agradeço a ajuda.

 

Boa noite,

 

Os dois estão ficando desativados pelo fato de você estar usando o ShowModal para chamar o segundo form. Ou seja,  o ShowModal faz com que o primeiro form fique inacessível, até que o segundo seja fechado. Porém, você está colocando como parente do segundo form o pnlAbrirForm, que por sua vez está dentro do primeiro, dessa forma, o segundo form também fica inacessível.

  • +1 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.