Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "KOL";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Вниз

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 вся ветка

Форум: "KOL";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.046 c
7-1079532148
crite
2004-03-17 17:02
2004.04.11
Как освободить память


9-1071181207
Куров Александр
2003-12-12 01:20
2004.04.11
Open GL


1-1080224141
alex732
2004-03-25 17:15
2004.04.11
Цвет текста в RichEdit


1-1079754867
SoloD
2004-03-20 06:54
2004.04.11
Преобразование кода для запуска приложения как службы win32


14-1082191531
zaxxx
2004-04-17 12:45
2004.04.11
Кто-нить знает нормальные сайты по Дельфи?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский