![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Marlin |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 170 Регистрация: 20.2.2006 Репутация: нет Всего: 1 |
Такая проблема. Как можно вычислить, в определенное время находится ли курсор мыши над кнопкой по координатам
с курсором мыши все ясно GetCursorPos(P:TPoint). Тем самым получаю координаты мыши. А вот с кнопкой как быть? И сравнить? --------------------
Программист решает проблемы, о которых пользователь даже не задумывается,способами, о котороых он даже не подозревает. |
|||
|
||||
| Guedda |
|
|||
![]() Подрывник ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3137 Регистрация: 27.12.2005 Где: Ростов-на-Дону Репутация: 14 Всего: 78 |
А что тут делать? Обрабатываешь движение мыши по кнопке, и все.
-------------------- Ll 2 |
|||
|
||||
| Marlin |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 170 Регистрация: 20.2.2006 Репутация: нет Всего: 1 |
Нет так не пойдет. Я не использую этот обработчик.
вот мой код
Добавлено @ 10:51 Что-то не пойму пользуюсь тегом, <code> </code> а результата не вижу. И кнопки редактирования у меня не отображаются Это сообщение отредактировал(а) Marlin - 3.3.2006, 10:57 --------------------
Программист решает проблемы, о которых пользователь даже не задумывается,способами, о котороых он даже не подозревает. |
|||
|
||||
| Guedda |
|
|||
![]() Подрывник ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3137 Регистрация: 27.12.2005 Где: Ростов-на-Дону Репутация: 14 Всего: 78 |
Используй не <code> а [соde], т.е. Квадратные скобки ставь.
Ну и в чем проблема по кнопке? -------------------- Ll 2 |
|||
|
||||
| Marlin |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 170 Регистрация: 20.2.2006 Репутация: нет Всего: 1 |
Кнопки на форуме, которые вставляют теги - они не отображаются в браузере MOZILA
если ты про эти кнопки спрашиваешь Это сообщение отредактировал(а) Marlin - 3.3.2006, 11:02 --------------------
Программист решает проблемы, о которых пользователь даже не задумывается,способами, о котороых он даже не подозревает. |
|||
|
||||
| remax |
|
||||
|
Доцент ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 686 Регистрация: 7.4.2002 Где: Украина, Харьков Репутация: 1 Всего: 5 |
???? 1) Все потомки TComponent могут посылать сообщения CMMouseEnter,CMMouseLeave во время пересечения курсором мыши границ компонента. Надо только правильно их обработать. Вручную, как у Вас, делать ничего не надо. 2) Предусмотрена стандартная обработка в виде события MouseMove, которое возникает только при перемещении мыши над компонентом! см. что написал Guedda. Добавлено @ 11:05
А отображение рисунков - включено? -------------------- Как бы ты не старался быть хорошим и правильным человеком с принципами и уважительным отношением к другим, всегда найдется кто-то, кто бросит в тебя какашку |
||||
|
|||||
| Marlin |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 170 Регистрация: 20.2.2006 Репутация: нет Всего: 1 |
Я итак использую такие события. Специально разбирался с компонентами "спясибо винградцам помогли".
В итоге написал компонент, который обрабатывает эти события. Но дело в том, что в процедуре обработчике я использую рекурсию обновления картинок. "см. код выше" Так вот в самом обработчике мне нужно знать находится ли все еще курсор над кнопкой, если да я рекурсию использую, а если нет обработчик заканчивает свою работу --------------------
Программист решает проблемы, о которых пользователь даже не задумывается,способами, о котороых он даже не подозревает. |
|||
|
||||
| remax |
|
|||
|
Доцент ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 686 Регистрация: 7.4.2002 Где: Украина, Харьков Репутация: 1 Всего: 5 |
Используй логическую переменную, в которую автоматически по событиям или обработкой сообщений заноси значения:
- при входе курсора мыши, по сообщению CM_MouseEnter - true - при выходе курсора мыши, по сообщению CM_MouseLeave - false И анализируй только содержимое этой переменной! -------------------- Как бы ты не старался быть хорошим и правильным человеком с принципами и уважительным отношением к другим, всегда найдется кто-то, кто бросит в тебя какашку |
|||
|
||||
| Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 30 Всего: 50 |
Так а в чем проблема? У тебя координаты кнопки неизвестны? -------------------- |
|||
|
||||
| Marlin |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 170 Регистрация: 20.2.2006 Репутация: нет Всего: 1 |
Вот именно, я знаю как получить координаты мыши относительно экрана, а вот кнопки не знаю
--------------------
Программист решает проблемы, о которых пользователь даже не задумывается,способами, о котороых он даже не подозревает. |
|||
|
||||
| remax |
|
|||
|
Доцент ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 686 Регистрация: 7.4.2002 Где: Украина, Харьков Репутация: 1 Всего: 5 |
Или используй логический цикл, внутри обработчика или оформи как отдельную процедуру. Не очень красиво и правильно в данном случае использовать рекурсивный вызов обработчика - запутанно и загаживается стек. Если курсор мыши остается над кнопкой достаточно долго - Ваша программа будет вылетать по ошибке. Нет, однозначно только логический цикл! -------------------- Как бы ты не старался быть хорошим и правильным человеком с принципами и уважительным отношением к другим, всегда найдется кто-то, кто бросит в тебя какашку |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 15 Всего: 98 |
о кнопки есть Left и Top относительно экрана. дальше продолжать?
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| remax |
|
|||
|
Доцент ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 686 Регистрация: 7.4.2002 Где: Украина, Харьков Репутация: 1 Всего: 5 |
Левый верхний угол x=Button1.left y=Button1.Top Правый нижний угол x=Button1.left+Button1.Width y=Button1.Top+Button1.Height -------------------- Как бы ты не старался быть хорошим и правильным человеком с принципами и уважительным отношением к другим, всегда найдется кто-то, кто бросит в тебя какашку |
|||
|
||||
| Демо |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 30 Всего: 50 |
Ясно. Держи пример.
-------------------- |
||||
|
|||||
| Marlin |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 170 Регистрация: 20.2.2006 Репутация: нет Всего: 1 |
Hanter
Я думал Left и Top это относительно формы за пример спасибо сейчас испробую. Добавлено @ 11:35 Спасибо все работает? Еще раз спасибо за пример --------------------
Программист решает проблемы, о которых пользователь даже не задумывается,способами, о котороых он даже не подозревает. |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |