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

Вниз

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

 
YuVoUA   (2003-04-14 14:09) [0]

Как мы знаем, этот код:
Application.HelpCommand(HELP_CONTEXTPOPUP, 1);
отображает всплывающее окно помощи для указанного раздела. Подобные результаты можно получить нажимая на biHelp кнопку формы, когда для компонента указан HelpContext.
Когда я компилирую проект с этим кодом под Delphi 5 - результат положительный. Однако, после компиляции того-же проекта под Delphi 6/7 результат получается другой - после отображения на долю секунды всплывающего окна помощи с указанным HelpContext сразу же отображается стартовая страница окна помощи. Та же ситуация и с biHelp кнопкой. От версии OS не зависит.
Я думаю, что эта ошибка связана с новой реализацией системы помощи в Delphi 6/7 IHelpSystem (Application.HelpSystem).
Использование следующего кода - SendMessage(Application.Handle, wm_help, HELP_CONTEXTPOPUP, 1) приводит к тем же плохим результатам.
Как истправить эту ошибку в Delphi 6/7 ?


 
Игорь Шевченко ©   (2003-04-14 15:54) [1]

WinHelp(WindowHandle,HelpFileName,HELP_CONTEXTPOPUP,ContextID) не поможет ?


 
YuVoUA   (2003-04-14 18:17) [2]

Спасибо,
WinHelp(WindowHandle,HelpFileName,HELP_CONTEXTPOPUP,ContextID) помогает, но только частично, реакция на biHelp кнопку остается неправильной


 
Игорь Шевченко ©   (2003-04-14 18:24) [3]

YuVoUA (14.04.03 18:17)

Можно по коду посмотреть, какова стандартная реакция у Delphi"йской формы на WM_HELP в данном случае.


"WS_EX_CONTEXTHELP -
Includes a question mark in the title bar of the window. When the user clicks the question mark, the cursor changes to a question mark with a pointer. If the user then clicks a child window, the child receives a WM_HELP message. The child window should pass the message to the parent window procedure, which should call the WinHelp function using the HELP_WM_HELP command. The Help application displays a pop-up window that typically contains help for the child window."



 
YuVoUA   (2003-04-18 14:24) [4]

Все нормально, только нужно в OnHelp прописать такой обработчик

Result := WinHelp(Application.Handle, PChar(Application.HelpFile), Command, Data);
CallHelp := false;

Успехов !!!



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

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

Наверх




Память: 0.47 MB
Время: 0.021 c
1-60191
kalishenko
2003-06-04 20:15
2003.06.19
Выравнивание строк в Wordе


1-60262
pirat
2003-06-04 20:12
2003.06.19
поддержка альфа канала


14-60365
KIE
2003-05-31 23:39
2003.06.19
Соединить два файла


4-60465
boa
2003-04-21 09:11
2003.06.19
Проблема с получением оттенка от clBtnFace


1-60263
Mateus
2003-06-06 09:53
2003.06.19
Подсчет контрольной суммы.