![]() |
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]() ![]() ![]() |
|
dm9 |
|
|||
![]() Дмитрий Копытин ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 3876 Регистрация: 22.7.2002 Где: Москва Репутация: 1 Всего: 137 |
Привет всем
![]() Я опять с тулбаром мучаюсь. Тулбар для IE. Создаю кнопочки TToolButton (родитель - TToolBar). Назначаю кнопочкам хинты (hint). Под Windows XP при убирании хинта на экране остаётся какая-то фигня, какое-то, видимо, окно (это не просто нарисованное на экране изображение, а что-то, что не убирается при перерисовке этой части окна). После закрытия окна IE эти окошки пропадают. Вопрос такой. Кто сталкивался? Как боролись? Какие предложения? И главное. Что такое вообще хинт. Можно ли его создать не стандарными средствами, то есть прописыванием поля hint, а как-то через WinAPI? Какие для этого существуют функции? Я навскидку сам ничего не нашёл. |
|||
|
||||
dm9 |
|
|||
![]() Дмитрий Копытин ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 3876 Регистрация: 22.7.2002 Где: Москва Репутация: 1 Всего: 137 |
Чё-та меня тянет изобретать велосипед и ловить вхождение / выхождение мыши в область кнопки и показывать свою форму как SW_SHOWNA...
Но наверняка это делается проще... Это сообщение отредактировал(а) dm9 - 21.3.2005, 21:39 |
|||
|
||||
RA |
|
|||
![]() Брутальный буратина ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3497 Регистрация: 31.3.2002 Где: Лес Репутация: 7 Всего: 115 |
Что я знаю про хинты - hint имеет свой hwn и подченяется всем правилам окон (почти всем).
![]() Вобще есть вероятность, что хинт не убивается, как например это часто встречается в Delphi (в самой среде), если так то нужно ему послать WM_CLOSE. |
|||
|
||||
dm9 |
|
|||
![]() Дмитрий Копытин ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 3876 Регистрация: 22.7.2002 Где: Москва Репутация: 1 Всего: 137 |
Кому? ![]() И когда? При убирании мыши с кнопки? Ох как мне лениво компонент переписывать для того, чтобы сообщение это поймать ![]() Это сообщение отредактировал(а) dm9 - 21.3.2005, 21:48 |
|||
|
||||
RA |
|
||||
![]() Брутальный буратина ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3497 Регистрация: 31.3.2002 Где: Лес Репутация: 7 Всего: 115 |
Конечто ему.
В твоем варианте это хз, не сталкивался с таким. Просто у меня однажды хинт повис я навел на него маус и изпод курсора прочел hwnd. ![]() Добавлено @ 22:24 Хотя текст в хинте это случайно не заголовок окна ? |
||||
|
|||||
dm9 |
|
|||
![]() Дмитрий Копытин ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 3876 Регистрация: 22.7.2002 Где: Москва Репутация: 1 Всего: 137 |
![]() ![]() Думаю, сделаю свою форму и буду её неактивной показывать при наведении мыши. |
|||
|
||||
p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 14 Всего: 112 |
Смотри DRKB -> VCL -> Hints -> ... Там есть примеры, как делать своего наследника от THintWindow, и как делать хинты через WinAPI... -------------------- С уважением, г-н Посол. |
|||
|
||||
сфе |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 23.3.2005 Репутация: нет Всего: нет |
hint - это окно типа Edit и подчиняется всем правилам. Работай с ним как с окном.
|
|||
|
||||
RA |
|
|||
![]() Брутальный буратина ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3497 Регистрация: 31.3.2002 Где: Лес Репутация: 7 Всего: 115 |
Сейчас проверил, так оно и есть ![]() Добавлено @ 10:42 А может тебе убивать класс хинтов, вродебы он TDestignHintWindow |
|||
|
||||
dm9 |
|
|||
![]() Дмитрий Копытин ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 3876 Регистрация: 22.7.2002 Где: Москва Репутация: 1 Всего: 137 |
Я решил проблему, создавая хинты таким образом:
hintwnd:= THintWindow.create(self); И освобождая таким: hintwnd.releasehandle; Возможно, проблема была в том, что TToolButton не получает сообщения WM_MOUSELEAVE. И вообще, как я понял, ничего не получает при выходе мыши. Мне пришлось обнаруживать вход мыши в область, ловя CM_HINTSHOW для TToolButton и выход - ловя WM_MOUSELEAVE для родителя - TToolbar.
Да, как обычно ![]() ![]() Спасибо за подсказку ![]() |
|||
|
||||
dm9 |
|
|||
![]() Дмитрий Копытин ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 3876 Регистрация: 22.7.2002 Где: Москва Репутация: 1 Всего: 137 |
У меня такая структура, что на один TToolbar - один TToolButton, поэтому так можно было делать. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: WinAPI и системное программирование" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |