Форум: "Начинающим";
Текущий архив: 2005.11.13;
Скачать: [xml.tar.bz2];
ВнизКоординаты на рабочем столе. Найти похожие ветки
← →
qwerty2k3 (2005-10-22 21:17) [0]На форме лежит Image. Как узнать координаты левого-верхнего угла этой имаги относительно рабочего стола? Рабочего стола без TaskBar. Я бы привел свой код, если бы он у меня был, но я не знаю с чего начать. Помогите.
← →
Джо © (2005-10-22 21:18) [1]Начать с ClientToScreen
← →
qwerty2k3 (2005-10-22 22:41) [2]Делаю так:
var P : TPoint;
Image1.ClientToScreen(P);
Form1.Caption := "koord: "+inttostr(P.x)+" "+inttostr(P.y);
И на заголовке получаю: koord: 4235257 99111628
Это что такое? Это же не координаты? Как сделать правильно?
← →
Джо © (2005-10-22 22:55) [3]
> Как сделать правильно?
Очевидно, сначала прочитать справку по этому методу, который является функцией.
Показать готовый пример или не лишать тебя удовольствия сделать этого самому? ;)
← →
Гарри Поттер © (2005-10-22 22:59) [4]Джо © (22.10.05 22:55) [3]
Покажи, а тоя всю ночь провожусь. Не могу понять как это должно быть.
← →
Джо © (2005-10-22 23:09) [5]
procedure TForm1.Button1Click(Sender: TObject);
var
Pt: TPoint;
begin
// получаем координаты верхнего левого угла
// относительно родительского окна
Pt := Image1.BoundsRect.TopLeft;
// переводим точку в экранные координаты
Pt := Image1.ClientToScreen(Pt);
Caption := Format ("x=%d, y=%d",[Pt.x,Pt.y]);
end;
А вообще, в данном случае, можно обойтись и без перевода. Поскольку у контролла уже есть свойство, возвращающее его верхний левый угол сразу в экранных координатах. Называется.ClientOrigin
← →
qwerty2k3 (2005-10-22 23:10) [6]
> Очевидно, сначала прочитать справку по этому методу, который
> является функцией.
В справке написано "Points to a POINT structure that contains the client coordinates to be converted. The new screen coordinates are copied into this structure if the function succeeds." Я понимаю так что в Р заносятся новые координаты? Дай лучше приер.
← →
Джо © (2005-10-22 23:15) [7]
> [6] qwerty2k3 (22.10.05 23:10)
Ты не ту Справку читаешь :) Ты привел цитату из Win32 SDK. А нужно смотреть МЕТОД TControl.ClientToScreen. В Справке по Делфи. И там это функция.
Пример см. выше.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2005.11.13;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.033 c