Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TrayIcon, Кто закрыл ToolTip? 
:(
    Опции темы
DemoCode
Дата 10.10.2006, 19:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 890
Регистрация: 20.10.2005
Где: Россия

Репутация: 2
Всего: 41



При закрытии тултипа по таймауту и при закрытии его юзером (при нажатии кнопки закрывания) используется одно и тоже сообщение, причём wParam и lParam у них тоже идентичны. Можно ли как-то опредилить сам тултип закрылся или ему помогли?


--------------------
Жить стало лучше, жить стало веселей
© И.В. Сталин 
PM MAIL ICQ   Вверх
Sunvas
Дата 10.10.2006, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


Профиль
Группа: Участник
Сообщений: 3388
Регистрация: 12.3.2006
Где: Тосно

Репутация: 28
Всего: 89



Цитата(DemoCode @  10.10.2006,  19:33 Найти цитируемый пост)
При закрытии тултипа по таймауту и при закрытии его юзером (при нажатии кнопки закрывания) используется одно и тоже сообщение, причём wParam и lParam у них тоже идентичны.

Это естественно: при любом закрытии тултип получает одно сообщение - закрытия. Попробуй отслеживать клики мыши на тултипе...


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
DemoCode
Дата 11.10.2006, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 890
Регистрация: 20.10.2005
Где: Россия

Репутация: 2
Всего: 41



Цитата(Sunvas @  10.10.2006,  21:06 Найти цитируемый пост)
при любом закрытии тултип получает одно сообщение - закрытия

Он получает сообщение таймаута.

Цитата(Sunvas @  10.10.2006,  21:06 Найти цитируемый пост)
Попробуй отслеживать клики мыши на тултипе... 

А более лучшего решения нету? Мне ведь нужно именно клик по кнопке закрытия поймать. Надо ещё её координаты как-то узнавать...


--------------------
Жить стало лучше, жить стало веселей
© И.В. Сталин 
PM MAIL ICQ   Вверх
smartov
Дата 11.10.2006, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 1
Всего: 259



Цитата(DemoCode @  11.10.2006,  13:05 Найти цитируемый пост)
А более лучшего решения нету?

Если тултип закрылся по таймеру - значит его закрыл таймер т.е. время прошло.
Если тултип закрыл юзер - то время таймера автоматического закрытия тултипа еще не прошло.

Итого надо запомнить время начала показа тултипа, посмотреть время его закрытия. Если общее время показа тултипа >= времени закрытия тултипа по таймеру - значит закрылся по таймеру.

Исключительной ситуацией когда юзер кликнул ну вот прямо в ту же милисекунду когда закончился таймер можно или пренебречь или обработать так, как более нужно у тебя в программе.

Добавлено @ 17:05 
ИМХО дешево и сердито раз уж товарищи из МС не подумали о том чтобы это дело можно было отличить.
PM MAIL   Вверх
DemoCode
Дата 11.10.2006, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 890
Регистрация: 20.10.2005
Где: Россия

Репутация: 2
Всего: 41



smartov, спасибо за идею, но тут дело ещё в том, что тултип не всегда закрывается точно по таймеру (бывает во время закроется, а бывает и раньше и позже), так и не смог разгадать отчего это зависит - ведёт себя как ему захочется. Так что на таймер надеется сильно не приходится. Но ничего не остаётся, придётся копать в этом направлении.

Sunvas, кстати, при клике по кнопке закрывания, сообщения о клике вообще нету, а только о таймауте.


--------------------
Жить стало лучше, жить стало веселей
© И.В. Сталин 
PM MAIL ICQ   Вверх
smartov
Дата 11.10.2006, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 1
Всего: 259



Цитата(DemoCode @  11.10.2006,  16:18 Найти цитируемый пост)
Sunvas, кстати, при клике по кнопке закрывания, сообщения о клике вообще нету, а только о таймауте. 

Я тебя так и понял. Это они видать "заюзали существующий функционал". Чтобы не обрабатывать лишнее событие они повесили на батон отсылку таймаута... ну не подумали что кому-то оно надо.. что сказать..
PM MAIL   Вверх
Sunvas
Дата 13.10.2006, 21:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


Профиль
Группа: Участник
Сообщений: 3388
Регистрация: 12.3.2006
Где: Тосно

Репутация: 28
Всего: 89



Цитата(smartov @  11.10.2006,  17:04 Найти цитируемый пост)
Если общее время показа тултипа >= времени закрытия тултипа по таймеру - значит закрылся по таймеру.

А если пользователь кликнул по тултипу вмест с закрытием по таймеру? (т.е. одновременно)


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1029 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.