Posição dos componentes em relação a tela inteira
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
Curtidas 0
Respostas
Marco Salles
27/07/2007
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;
GOSTEI 0
Adriano Santos
27/07/2007
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.
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;
GOSTEI 0
Junior Zanca
27/07/2007
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;
Boa Dica
GOSTEI 0