Вниз
Скачать: CL | DM;

Получить координаты компонента на экране   Найти похожие ветки 

← →
DelphiN! ©   (2006-02-08 08:15) [0]

Как получить координаты компонента (x,y) на экране(Screen), а не на родителе


← →
MBo ©   (2006-02-08 08:20) [1]

ClientToScreen


← →
DelphiN! ©   (2006-02-08 08:37) [2]


>  [1] MBo ©   (08.02.06 08:20)


И как ей пользоваться? Я конечно могу получить координаты для отдельного компонента так x := Form1.Left+Parent.Left+Button1.Left. Но не хотелось бы складывать все Leftы всех родителей компонента "вручную", хотелось бы написать функцию вида function GetScreenComponentPos(Component: TObject): TPoint;


← →
evvcom ©   (2006-02-08 08:45) [3]


> Но не хотелось бы складывать все Leftы всех родителей компонента
> "вручную"

ClientToParent, только зачем? Вызывай ClientToScreen с координатами 0,0 метод своего компонента, а не родителя и не формы.


← →
DelphiN! ©   (2006-02-08 08:46) [4]

Все, уже сам разобрался, оказалось все легко, просто не проснулся еще, не думается :)

function TForm1.GetComponentClientPos(Comp: TWinControl): TPoint;
var
 Parent: TWinControl;
begin
 Result.X := Comp.Left;
 Result.Y := Comp.Top;
 Parent := Comp.Parent;
 while Parent <> nil do
 begin
   Result.X := Result.X+Parent.Left;
   Result.Y := Result.Y+Parent.Top;
   Parent := Parent.Parent;
 end;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
 p: TPoint;
begin
 p := GetComponentClientPos(Button1);
 showmessage(inttostr(p.X)+#13#10+inttostr(p.Y));
end;


← →
TUser ©   (2006-02-08 09:45) [5]

Mouse.CursorPos


← →
MBo ©   (2006-02-08 10:01) [6]

>DelphiN! ©   (08.02.06 08:37) [2]
>И как ей пользоваться?

procedure TForm20.Button1Click(Sender: TObject);
var
 P: TPoint;
begin
 P := Button1.ClientToScreen(Point(0,0));
 Caption := Format("My screen coords:  %d: %d", [P.X, P.Y]);
end;


← →
DelphiN! ©   (2006-02-08 10:16) [7]


>  [6] MBo ©   (08.02.06 10:01)


Ну вот, вечно я уще трудности :) Зато мой вариант тоже работает :)



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.023 c
2-1140609531
zxcv
2006-02-22 14:58
2006.03.12
время, затрачиваемое на выполнение процедуры или ф-ии


2-1140541541
Sower
2006-02-21 20:05
2006.03.12
Байты с битами


1-1139392424
ДенисНск
2006-02-08 12:53
2006.03.12
Очередь MSMQ


15-1140420526
pavel_guzhanov
2006-02-20 10:28
2006.03.12
Видеозахват


15-1140184660
yanval
2006-02-17 16:57
2006.03.12
IEEE сколько то там




   Наверх