Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.01.2007, 20:46   #1
Vladimir K.
Пользователь
 
Регистрация: 25.12.2006
Сообщений: 64
По умолчанию Определение X и Y координат PaintBox при перемещении курсора мыши

Как сделать так, чтобы при перемещении курсора по PaintBox определялись X и Y координаты курсора?
Использую такую процедуру:

procedure TGraph.PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
LX.Caption:=Inttostr(Mouse.CursorPo s.X);
LY.Caption:=Inttostr(Mouse.CursorPo s.Y);
end;

но координаты зависят от положения окна приложения, на котором расположен PaintBox относительно границ самого монитора. Если окно имеет небольшие размеры и расположено посередине Desktop, X-координата начинается, например со 148, а если сдвинуть окно влево, так, чтобы его граница вышла за пределы Desktop - то с 0.
А как сделать, чтобы X-координата всегда начиналась с 0, независимо от того, какого размера окно приложения, и где это окно расположено?
Vladimir K. вне форума Ответить с цитированием
Старый 03.01.2007, 21:09   #2
MaGiCeYe
Пользователь
 
Аватар для MaGiCeYe
 
Регистрация: 29.12.2006
Сообщений: 11
Сообщение

Попробуй так:
procedure TGraph.PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
LX.Caption:=Inttostr(Mouse.CursorPo s.X-form1.left-3);
LY.Caption:=Inttostr(Mouse.CursorPo s.Y-form1.top-30);
end;
Числа 3 и 30 зависят от BorderStyle формы.
БОГ ЕСТЬ СОВЕСТЬ...

Последний раз редактировалось MaGiCeYe; 03.01.2007 в 21:11.
MaGiCeYe вне форума Ответить с цитированием
Старый 03.01.2007, 21:33   #3
Vladimir K.
Пользователь
 
Регистрация: 25.12.2006
Сообщений: 64
По умолчанию

Вот подсказали:
LX.Caption:=Inttostr(X);
LY.Caption:=Inttostr(Y);

Но, все-равно спасибо за помощь!

Последний раз редактировалось zetrix; 04.01.2007 в 10:42.
Vladimir K. вне форума Ответить с цитированием
Старый 04.01.2007, 10:45   #4
zetrix
Delphi/C++/C#
Участник клуба
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 1,972
По умолчанию

Правильно подсказали:

procedure TGraph.PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
LX.Caption:=Inttostr(X);
LY.Caption:=Inttostr(Y);
end;

Выделенные числа и надо использовать, они и показывают координаты курсора относительно самого объекта.
zetrix вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
bmp и paintbox, использование шрифта? PONKA Общие вопросы Delphi 10 14.05.2008 16:47
Система координат SunKnight Общие вопросы Delphi 2 05.02.2008 19:42
paintbox steck Общие вопросы Delphi 5 28.10.2007 16:15