| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Заставить появляться Hint в конкретных координатах |
| Автор: Fedor 8.11.2004, 10:55 |
| Собственно, как сделать САБЖ. У меня есть компонент. И мне нужно чтоб при наведении на него мышки Hint появлялся не в том месте, где курсор, а в определенных координатах на этом компоненте X и Y |
| Автор: Pakshin A. S. 8.11.2004, 13:46 | ||
Лови:
|
| Автор: <Spawn> 8.11.2004, 13:47 | ||
Бросаешь на форму ApplicationEvents и пишешь обрабочтик OnHint примерно так:
|
| Автор: Zero 8.11.2004, 14:36 |
| <Spawn>, у меня такой же вопрос, но только, как сделать это если на форме будет метка Label |
| Автор: Pakshin A. S. 8.11.2004, 14:48 |
| Тогда пробуем мой метод... Он самомтоятельно моздает Hint для любого компонента... Можно ещё в процедуру и вставить параметр, отвечающий за текст подсказки.. |
| Автор: <Spawn> 8.11.2004, 15:29 | ||
| Zero Ты хочешь отобржатаь подсказку в TLabel? Если так, то:
|
| Автор: Zero 8.11.2004, 17:01 | ||
Только в заданых координатах... И я не совсем понял как сделать метод ApplicationEvents1ShowHint А кстати Pakshin A.S., в твоём сбособе DT_CANCRECT ─ является неизвесным идентификатором... |
| Автор: Pakshin A. S. 8.11.2004, 17:12 |
| DT_CALCRECT |
| Автор: Zero 8.11.2004, 17:23 | ||
Спасибо одну часть исправил, а вот теперь в строке
компмлятор выдаёт ошибку останавливаясь на x: след.: [Error] Unit1.pas(41): Incompatible types: 'Integer' and 'TPoint' |
| Автор: Pakshin A. S. 8.11.2004, 17:57 |
| Сразу мог сказать?! OffsetRect(HintBox, HintPos.x, HintPos.y); |
| Автор: Zero 8.11.2004, 18:43 | ||||
До него у меня компилятор тогда ещё не дошол тогда. А вот теперь я думаю, остался последний неизвесный идентификатор: ActiveHint. В строке
|
| Автор: Pakshin A. S. 9.11.2004, 19:32 |
| Да... без компилятора плохо... надо будет взять... Result.ActivateHint(HintBox, ShortHint); |
| Автор: Zero 9.11.2004, 21:12 | ||||||
Я был не прав
надо
При этом, наконец-то компилируется, но всётаки, вопрос был как отправить хинты в координать X,Y ─ при наведении курсора на Label? |
| Автор: Pakshin A. S. 9.11.2004, 21:35 |
| Берем и перадеём подскузку как параметр в процедуру. По событию "Мышь на lаbel" показываем hint, если не показан hint. Как мышь вышла, убираем... |
| Автор: Zero 9.11.2004, 23:22 | ||
Ты имееш ввиду на событие Label1MouseMove, чтоль??? Неработает, т.к. в процедуре RemoveHint, всего один параметр, и он должен быть типа THintWindow. Короче говоря, вот есть у меня, форма на которой, находится Label, а в окне кода есть две твоих процедуры, и что куда ещё нужно дописть чтобы всётаки подсказка выдавалась в координатах [x,y]. Да чтобы нам не путатся пусть X и Y, в процедуре создания форма присваивают значения [200,300]. |
| Автор: Pakshin A. S. 10.11.2004, 20:04 |
| Понял правильно... создай глобальную переменную типа THintWindow и юзай в соответствующих событиях ту или иную процедуру... Вообще видел оригинальный способ подсказки. В качестве фона подсказки используется обыкновенный TPanel, с настройками бортов. На ней Label... Управляя свойством Visible и Left, Top можно организовать интереный и простой Hint... |
| Автор: Zero 10.11.2004, 23:40 | ||||
Ты хочеш сказать что, в процедуре Label1MouseMove надо всё втыкать??? Я же говорю, что не работает, т.е. компилятор даёт ошибку в этом случае:
А ты немог бы привести простой пример для вывода хинта в коорд. X,Y??? И вообще я уже запутался тут, здесь даже твои две процеуры не используются... |