|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
10.05.2008, 03:36 | #1 |
Пользователь
Регистрация: 07.05.2008
Сообщений: 10
|
Определить попала ли точка в область?
Попрошу дельных советов или ссылку на источник,по следующему вопросу:
Пользователь кликает мышкой по форме и надо определить попал ли он в область(сектор-кусок окр-ти).Стоит ли делать,по методу-проверка на совпадение цвета пикселя области и формы или лучше заморачиваться на системы координат и уравнение окружности? |
10.05.2008, 07:21 | #2 | |
Пользователь
Регистрация: 06.04.2008
Сообщений: 48
|
Цитата:
|
|
10.05.2008, 07:32 | #3 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
А чтобы меньше возиться (например, если фигура - сложная), Windows GDI предоставляет для этого регионы и набор функций для работы с ними, скажем, PtInRegion.
Region Functions Последний раз редактировалось B_N; 10.05.2008 в 07:34. |
10.05.2008, 20:34 | #4 |
Пользователь
Регистрация: 07.05.2008
Сообщений: 10
|
Огромное спасибо,с регионами разобрался.Только не получается получить координаты мыши.Щас глупость спрошу,но подскажите,пожалуйсто:
Для событи щелчка левой кнопки мыши пишу процедуру: Код:
Написано,что чтобы определить координаты мыши делайте так: xPos = GET_X_LPARAM(lParam); yPos = GET_Y_LPARAM(lParam); а как на Delphi сделать? |
10.05.2008, 21:25 | #5 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
http://programmersforum.ru/showthread.php?t=18165
------------------------------- P.S. Собственно, о чём это я ....... Ведь Код:
|
11.05.2008, 22:29 | #6 |
Пользователь
Регистрация: 07.05.2008
Сообщений: 10
|
В этом случае компилятор ругается на синтаксис:
X := SMALLINT( lParam and $FFFF); Y := SMALLINT( (lParam shr 16) and $FFFF); Во втором случае,я так понимаю при обработке любого сообщения Windows передает и координаты мыши заодно через эту структуру. Но обращение TWMMouse.XPos у меня не заработало Можно ещё использовать вариант GetCursorPos().Здесь возникает вопрос,как экранные координаты перевести в логические,чтобы можно было работать с регионами. |
12.05.2008, 00:04 | #7 |
Ra-Ra ?
Форумчанин
Регистрация: 06.03.2008
Сообщений: 286
|
GetCursorPos(Pt : TPoint) разьве это не логическая ? Ты получаеш переменную Pt и выдёргиваеш из неё координаты по отдельности: Pt.X, Pt.Y (Не бейте если что-то не то сказал ^_^)
|
13.05.2008, 00:15 | #8 |
Пользователь
Регистрация: 07.05.2008
Сообщений: 10
|
Я иммел ввиду ,что Windows GDI->Region Functions и GetCursorPos(Pt : TPoint) в разных координатных системах.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
область видимости переменных. С++ | Prestigio | Помощь студентам | 10 | 07.07.2008 15:55 |
Среди 20 введёных чисел определить чётные, распечатать их, определить min | Spade | Помощь студентам | 4 | 15.06.2008 18:39 |
Дана точка A с координ. X и Y, определить... | Cullen | Паскаль, Turbo Pascal, PascalABC.NET | 5 | 30.01.2008 00:22 |
область видимости ? | artem779 | Общие вопросы Delphi | 3 | 14.09.2007 09:34 |
Точка на полигоне? | Роман Радер | Общие вопросы Delphi | 14 | 12.02.2007 17:08 |