Centralizar Componente na tela!!!

Delphi

12/03/2011

Bom dia Pessoal...

Seguinte, tenho a necessidade de centralizar componentes na tela pelo seguinte motivo:

Varias telas tem componentes soltos na tela que fica com a propriedade visible false!

e estes componentes aparecem e determinas ocasioes, porem como eles ficam soltos na tela e por cima do resto dos componentes acabo jogando ele para um lado e outro quando vou dar manutenção na tela! E na hora de compilar não centralizo ele novamente!

oque eu preciso é o seguinte:

uma função onde eu passe o componente que quero que seja centralizado e a tela que ele deve olhar para se centralizar...

Utilizo Delphi 7...

PS: qualquer ajuda ou dica é bem vinda...
Km Sistemas

Km Sistemas

Curtidas 0

Melhor post

André Silveira

André Silveira

12/03/2011

Eu faria uma procedure mais ou menos assim:

procedure TForm1.CentralizaTela(Componente: TComponent; Tela : TForm);
var
AlturaTela, LarguraTela, AlturaComp, LarguraComp : Integer;

begin
  LarguraTela := Tela.Width;
  AlturaTela  := Tela.Height;

  if Tela.Components[Componente.ComponentIndex] is TButton then
  begin
    LarguraComp := TButton(Tela.Components[Componente.ComponentIndex]).Width;
    AlturaComp  := TButton(Tela.Components[Componente.ComponentIndex]).Height;
    TButton((Tela.Components[Componente.ComponentIndex]).Top := AlturaTela  div 2 - ( AlturaComp div 2);
    TButton(Tela.Components[Componente.ComponentIndex]).Left := LarguraTela div 2 - (LarguraComp div 2);
  end;

end;


Note que você vai ter que ficar testando qualo tipo do componente para poder usar as propriedades Top e Left.


André Luis.
GOSTEI 1

Mais Respostas

Km Sistemas

Km Sistemas

12/03/2011

Tranquilo andré....

Muito obrigado pela ajuda...
GOSTEI 0
POSTAR