GARANTIR DESCONTO

Fórum Posição dos componentes em relação a tela inteira #343779

27/07/2007

0

Alguém sabe como pegar a posição e altura do componente em relação a tela inteira e não só ao componente pai ou form restrito a ele? eu queria colocar um form embaixo de um componente certinho, só q esse componente está dentro de muitos componentes, e fica ruim ficar pegando as posições dos componentes e somando-as, pq o número de componentes pai pode mudar. se alguém souber de um método nativo no delphi, por favor. senão, eu me viro mesmo.


Yakazuma1

Yakazuma1

Responder

Posts

30/07/2007

Marco Salles

se alguém souber de um método nativo no delphi, por favor. senão, eu me viro mesmo.


acho que voce pode usar a Api GetWindowsRect

var pRect:TRect; begin GetWindowRect(Seucomponente.Handle,pRect); pRect.left-->>>posicao em relação a esquerda em relação a tela pRect.top-->>>posicao em relação ao Top end;



Responder

Gostei + 0

30/07/2007

Adriano Santos

Dá uma olhada nisso.
Tenho dois forms aqui. O primeiro form tem um button e um checkbox. Se marcar o checkbox o form é alinhado pela esquerda do componente button, do contrário é alinha a direita. Veja se ajuda pra você ter uma idéia.
procedure TForm1.Button1Click(Sender: TObject);
var
  Pt: TPoint;
  Topo: Integer;
  Eval: Integer;
begin
  GetCursorPos(Pt);
  Form2 := TForm2.Create(Application);
  if CheckBox1.Checked then
  begin
    Form2.Left := Form1.Left + TButton(Sender).Left + 5;
    Form2.Top := Form1.Top + TButton(Sender).Top + 55;// Form1.Top + Self.Top + Self.Height + 30;
  end
  else
  begin
    Form2.Left := Form1.Left + TButton(Sender).Left + 5 - Form2.Width + TButton(Sender).Width;
    Form2.Top := Form1.Top + TButton(Sender).Top + 55;// Form1.Top + Self.Top + Self.Height + 30;
  end;
  Form2.ShowModal;
  Form2.Free;
end;



Responder

Gostei + 0

20/12/2011

Junior Zanca

[code:1:cdbeb06222]se alguém souber de um método nativo no delphi, por favor. senão, eu me viro mesmo.[/code:1:cdbeb06222]

acho que voce pode usar a Api GetWindowsRect

[quote:cdbeb06222]var
pRect:TRect;
begin
GetWindowRect(Seucomponente.Handle,pRect);
pRect.left-->>>posicao em relação a esquerda em relação a tela
pRect.top-->>>posicao em relação ao Top
end;[/quote:cdbeb06222]



Boa Dica
Responder

Gostei + 0

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

Aceitar