Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.11;
Скачать: CL | DM;

Вниз

Hint ы   Найти похожие ветки 

 
Eug201 ©   (2003-08-09 00:13) [0]

Подскажите, как сделать чтоб отображались хинты. Нужен какой-то модуль/компонент? На форме свойство ShowHint в True не встает.


 
Dimaxx ©   (2003-08-09 00:21) [1]

Самый простой способ без компонентов:

1) Задаем переменные

var
 HintWND: HWND;
 TI: TToolInfo;
 Tips: array[0..3] of PChar = (
   "Hint1",
   "Hint2",
   "Hint3",
   "Hint4");


2) В свойство TAG компонентов, у которых нужен хинт вписываем порядковые номера (им соответствуют номера в массиве Tips)

3) При создании формы пишем:

HintWnd:=CreateWindowEx(0,TOOLTIPS_CLASS,nil,0,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,Applet.GetWindowHandle,0,HInstance,nil);

4) На OnMouseMove компонента вешаем:

with TI do
 begin
   cbSize:=sizeof(TI);
   uFlags:=TTF_SUBCLASS;
   hWnd:=Sender.GetWindowHandle;
   uID:=0;
   Rect.Left:=Sender.ClientRect.Left;
   Rect.Top:=Sender.ClientRect.Top;
   Rect.Right:=Sender.ClientRect.Right;
   Rect.Bottom:=Sender.ClientRect.Bottom;
   hInst:=HInstance;
   lpszText:=Tips[Sender.Tag];
 end;
SendMessage(HintWnd,TTM_ADDTOOL,0,DWORD(@TI));


5) На событие формы OnDestroy льем:

DestroyWindow(HintWnd);

Все! Компилим, запускаем и пользуемся!


 
Dimaxx ©   (2003-08-09 00:24) [2]

Да, забыл!

1) Массив делаем размером по количеству контролов с хинтами.
2) На событие OnMouseMove записать код один раз и повестить его на все контролы сразу.


 
SPeller ©   (2003-08-09 08:16) [3]

Есть компонент MHToolTip, на этом сайте лежит.


 
Eug201 ©   (2003-08-09 16:19) [4]

Насчет компонента пока разбираюсь - проблема с установкой (Delphi7).

А вот насчет кода от Dimaxx. Все работает, thanks!! Но, не работает TKOLComboBox. Точнее хинт появляется только тогда, когда мышь над стрелочкой выбора, а когда над полем ввода - тишина :( В чем может быть причина? Delphi 7/XP. И еще, я сколько не читал MSDN - какой-то он с Delphi дет куцый - не смог представить картины в целом. Меня просто интересует метод Add. Проблема в том: если мышью под]ехать к компоненnу и подождать, хинт висит, прячется, и снова появляется несколько раз. Видимо столько, сколько раз отработало сообщение TTM_ADDTOOL. Это ведь немножко неправильно?


 
Dimaxx ©   (2003-08-10 00:03) [5]

У меня дельфи 5 + ХР и в любом месте комбика хинт нормально отображается. И не отображается несколько раз, а только один. Для того, чтобы он снова появился, нужно убрать мышь с компонента, а потом снова вернуть. Тогда появится.


 
Dimaxx ©   (2003-08-10 00:07) [6]

2 Eug201: Попробуй еще вместо HInstance поставить ноль.


 
Eug201 ©   (2003-08-10 08:48) [7]

Помогите, please, с MHToolTip. Не могу скомпилировать. Требует MCKMHToolTip.pas (в архиве нет). А насчет KOLMHToolTip.pas говорит "Unit expected, but end of file found". Может архив поврежден? Хотя распаковался без ошибок.


 
JanvVlad   (2003-08-10 19:17) [8]

Аналогичная проблема с MHToolTip под Delphi 6.

Кстати, никто не знает, как переместить Tooltip, ну, скажем, в верхний левый угол и показать его?


 
SPeller ©   (2003-08-11 08:22) [9]

Создавай тултип вручную через апи и делай с ним всё что захочешь.


 
Gandalf ©   (2003-08-23 15:25) [10]

Для того что MHToolTip заработали надо (Надо хоть комментарии в Demo читать):

1) Добавлять KOLMHToolTip нельзя, поскольку используется пристыковка
модуля KOLMHToolTip (потому модуль выглядит так странно, местами просто несвязанные куски кода)
в текст модуля KOL.pas посредством прямого
включения {$I} и условной компиляцией.  Потому необходимо указать в опциях проекта, в
кондикцияхConditionals=KOL_MCK;USE_MHTOOLTIP замечу, что в Деме это уже сделано.
2) Далее необходимо, чтобы код прикомпилировался, для этого надо Rebuild All Projects, а потом
Recompile All Projects. Все теперь у нас "новый" KOL с поддержкой Hint"ов.
3) Далее можно работать как прежде и наслаждаться Hint"ами.

Если всеже не пашет.
Попробуй сам KOL.pas открыть и
вставить в начало {$DEFINE USE_MHTOOLTIP}, потом сохрани, закрой, и
перекомпилируй (например пересобрав MCK из пакета), железный метод, но
не очень изящный (надо KOL.pas править)!

Не забываем пути прописывать.



Страницы: 1 вся ветка

Текущий архив: 2004.04.11;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.031 c
1-1080214459
EvgeniyR
2004-03-25 14:34
2004.04.11
MDI


1-1080031842
Zendor
2004-03-23 11:50
2004.04.11
удаление информации из файла


3-1079343577
Миф
2004-03-15 12:39
2004.04.11
dxDBGrid Filter


1-1082365341
tria
2004-04-19 13:02
2004.04.11
Как узнать размер поля (отступа) при печати?


3-1081497227
gedd
2004-04-09 11:53
2004.04.11
Rave Report ...