Fórum comportamento estranho: MdiChild,TPanel,TImage em Aplicação #330597

03/10/2006

0

Alô à Todos!

Atores:

Num Form (principal formStyle = mdiform) tenho um Tpanel (meramente para efeito visual) e um Timage onde carrego a imagem do cliente e um componente TOUTLOOKBAR da MxComponentes.

Comportamento estranho:

Se meus forms (mdChild´s) forem setados como mdichild, ao chamá-los eles aparecem em baixo do TPanel, não na frente do Tpanel! Para Conseguir isso coloco-os como FormStyle = StayOnTop. Se tirar o Panel e o TImage tudo é exibido corretamente.

Daí fica a pergunta, Alguma propriedade, manha, dica, reza ou até mesmo bruxaria pra resolver isso? Teria algo a ser feito?

Agradeço aos que contribuírem! :D


Microbios

Microbios

Responder

Posts

05/10/2006

Microbios

ninguém sabe? :(


Responder

Gostei + 0

05/10/2006

Massuda

Daí fica a pergunta, Alguma propriedade, manha, dica, reza ou até mesmo bruxaria pra resolver isso? Teria algo a ser feito?
Quem implementa MDI é o Windows, não o Delphi. O que você está observando é o comportamento esperado: o Windows assume que todo form MDIChild deve aparecer imediatamente acima do MDIForm; o resultado é que qualquer outra coisa que você por no form principal irá aparecer depois dos MDIChild.


Responder

Gostei + 0

05/10/2006

Massuda

Daí fica a pergunta, Alguma propriedade, manha, dica, reza ou até mesmo bruxaria pra resolver isso? Teria algo a ser feito?
Quem implementa MDI é o Windows, não o Delphi. O que você está observando é o comportamento esperado: o Windows assume que todo form MDIChild deve aparecer imediatamente acima do MDIForm; o resultado é que qualquer outra coisa que você por no form principal irá aparecer depois dos MDIChild.


Responder

Gostei + 0

06/10/2006

Microbios

vixe!!! :shock: :shock:

Chato isso né? Assim não dá pra ter um visual legalzin... Teria alguma idéia pra ´contornar´ isso?

Valeu Massuda.... :D


Responder

Gostei + 0

06/10/2006

Massuda

Qual sua idéia de ´visual legalzin´?

(Por favor, se for postar uma imagem, tenha dó de quem tem conexão discada e procure usar uma imagem pequena)


Responder

Gostei + 0

06/10/2006

Microbios

Vou postar, meu amigo, vou postar... mais tarde... pó dexá.. vou ter pena... heheeheheheheheh Thanks pelo ótimo apoio! :D :D


Responder

Gostei + 0

07/10/2006

Micheus

[b:c0ab4f612b]microbios[/b:c0ab4f612b], num outro [url=http://scriptbrasil.com.br/forum/index.php?s=&showtopic=86444&view=findpost&p=381631]forum[/url], onde fizeram uma referência a este post, coloquei o seguinte:
Estudando o código da criação do form quando o formato é MDI, observei que a área interna do MainMDI tem uma janela(sub-janela digamos assim), cujo handle é armazenado em ClientHandle.
Então usando a função SetParent da unit Windows, dá para definir esta janela como parent dos componentes que vc ´supostamente´ teria colocado sobre ela.

No create do main MDI basta chamar SetParent para os componentes que você colocou neste form. No meu exemplo adicionei StringGrid, GroupBox e Panel, ficando assim:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Windows.SetParent(StringGrid1.Handle, ClientHandle);
  Windows.SetParent(GroupBox1.Handle, ClientHandle);
  Windows.SetParent(Panel1.Handle, ClientHandle);
end;

[]s


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar