|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
21.07.2010, 16:19 | #1 |
Форумчанин
Регистрация: 05.04.2010
Сообщений: 410
|
Обработчики событий мыши для компоненты Image
На форме есть Image1. Для него есть три обработчика события мыши:
Код:
Код:
Мне нужно, чтобы когда я нажму правую кнопку мыши и не отпуская ее выведу курсор за пределы компоненты Image1 переменная flag получила значение false. Как это сделать???
ICQ: 593-013-807
|
21.07.2010, 16:52 | #2 |
я получил эту роль
Старожил
Регистрация: 25.05.2007
Сообщений: 3,694
|
SetCapture(hwnd);
Но, увы. TImage окном не является, дескриптора не имеет, так что с ним такие фокусы не пройдут. Можно поискать другой компонент или переписать TImage как потомка TWinControl (смотри тут, http://programmersforum.ru/showthread.php?p=569062, только в данном случае ControlStyle менять не нужно) Может быть ещё получится TImage'м накрыть TPanel и передавать клик ей, но это как-то некрасиво
пыщь
Последний раз редактировалось JTG; 21.07.2010 в 16:57. |
21.07.2010, 17:26 | #3 |
Форумчанин
Регистрация: 05.04.2010
Сообщений: 410
|
ICQ: 593-013-807
|
21.07.2010, 18:47 | #4 |
Delphi, OpenGL API
Форумчанин
Регистрация: 29.03.2010
Сообщений: 152
|
В обработчике события MouseMove напишите
Код:
|
21.07.2010, 19:22 | #5 |
Форумчанин
Регистрация: 05.04.2010
Сообщений: 410
|
не работает
ICQ: 593-013-807
|
21.07.2010, 19:31 | #6 |
Delphi, OpenGL API
Форумчанин
Регистрация: 29.03.2010
Сообщений: 152
|
А на чем у тебя Имеидж?
|
21.07.2010, 19:35 | #7 |
Форумчанин
Регистрация: 05.04.2010
Сообщений: 410
|
Form1. И к стати, Image может занимать всю клиентскую область формы.
ICQ: 593-013-807
|
21.07.2010, 19:52 | #8 |
я получил эту роль
Старожил
Регистрация: 25.05.2007
Сообщений: 3,694
|
Пардон, думал наоборот нужно захватывать мышиный ввод после выхода за клиентскую облать.
Дописать обработчики onMouseEnter/onMouseLeave (в новых делфях они кажись есть и так), и повесить на onMouseLeave обнуление флага http://programmersforum.ru/showpost....58&postcount=9
пыщь
|
21.07.2010, 20:27 | #9 |
Delphi, OpenGL API
Форумчанин
Регистрация: 29.03.2010
Сообщений: 152
|
Тогда ничего не остается, как бросить на форму таймер и написать в onTimer следующее:
Код:
ClientToScreen - функция, которая переводит координаты клиентской области в координаты экрана. Тип результата функции - TPoint. Последний раз редактировалось Miha85193; 22.07.2010 в 08:43. |
21.07.2010, 21:30 | #10 | |
Форумчанин
Регистрация: 05.04.2010
Сообщений: 410
|
Цитата:
А как можно получить позицию курсора относительно всего экрана? Если конечно такое возможно.
ICQ: 593-013-807
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Перехват событий клавиатуры и мыши (X system) | damned20 | Qt и кроссплатформенное программирование С/С++ | 4 | 26.02.2010 12:18 |
Перехват событий клавиатуры и мыши (X system) | damned20 | Общие вопросы C/C++ | 0 | 25.02.2010 09:40 |
HTML нет событий при передачи методо POST через <input type="image" | Mixail | HTML и CSS | 12 | 07.06.2009 03:33 |
Обработчики событий формы | Alexei_1986 | Помощь студентам | 5 | 18.02.2009 22:11 |