![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Hint и собственный компонент
salexn © (2006-07-03 13:09:00)Есть TImage, в котором выводится некоторая графика. Как сделать так, чтобы при набедении на определенную облать выводился хинт, поясняющий что это такое.
Сделал через HintWindow и таймер, но не очень нравится. Зачастую, в данной реализации, почему-то не отрабатывает CMMouseLeave. Хотелось бы оформить ввиде компоненты. Приходится чуть ли не на каждый контрол на форме вешать "убивание" HintWindow.
DimaBr (2006-07-03 16:44:00) [1]TMS.HotSpotImage
Макс Черных (2006-07-03 16:06:00) [2]Надо перехватывать CM_HINTSHOW
procedure CMHintShow(var Message: TMessage); message CM_HINTSHOW;
procedure МойКомпонент.CMHintShow(var Message: TMessage);
inherited;
Message.Result := 1;
with TCMHintShow(Message) do begin
...
HintInfo^.CursorRect := Область (тип TRect);
...
end;
end;
Тогда когда курсор передвинется за границы Области, то старый хинт закроется и пойдет новый.
salexn (2006-07-03 14:09:00) [3]Мне нужно, чтобы перемещаясь мышкой по TImage от области к области хинт показывался для данной области. Потом, в ТВОЕМ случае хинт будет болтаться не зависимо от того, в какой области ты находишься.
Phoroon~ (2006-07-03 13:52:00) [4]
> Что бы он дольше висел?
При создании проекта пиши: Application.HintHidePause:=100000;
Phoroon~ (2006-07-03 13:50:00) [5]Так а тебе чего нужно!
Что бы он дольше висел?
salexn (2006-07-03 13:43:00) [6]И сколько раз покажется хинт в вашем случае, если мышь не покинет TImage? 1 раз...
Phoroon~ (2006-07-03 13:30:00) [7]У каждого компонента есть свойства: Hint; ShowHint.
Hint - сюда пишешь текст.
ShowHint - ставишь true (показ хинта)
ИМХО
Не надо не чё выдумывать!!!