Статьи по Delphi - Help файлы, Работа с Help файлами |
Здравствуйте, гость ( Вход | Регистрация )
Here You Can Support Our Work and .:LavTeaM:. Services |
Статьи по Delphi - Help файлы, Работа с Help файлами |
![]()
Сообщение
#1
|
|
![]() Черный человек ![]() Группа: Модераторы Пользователь №: 9425 Сообщений: 729 Регистрация: 20.01.2005 Из: Междуреченск Загружено: байт Скачано: байт Коэффициент: --- Спасибо сказали: 11 раз(а) ![]() |
Вариант использования HTML Help в Делфи
Код // 1) После Uses... добавляешь: const HH_DISPLAY_TOPIC = $0000; HH_HELP_FINDER = $0000; // WinHelp equivalent HH_GET_WIN_HANDLE = $0006; HH_DISPLAY_TEXT_POPUP = $000E; // display string resource id or text in a popup window HH_HELP_CONTEXT = $000F; // display mapped numeric value in dwData HH_HELP_CONTEXTMENU = $0010; // text popup help // 2) Перед секцией Implementation добавляешь: function HtmlHelp( hwndCaller: HWND; pszFile: string; uCommand: Integer; dwData: integer): HWND; stdcall; external 'hhctrl.ocx' name 'HtmlHelpA'; // 3) В разделе Private у класса формы добавляешь: procedure WMHelp(var aMessage: TWMHelp); message WM_HELP; // 4) В разделе implementation пишешь: // Если смотрим помощь по пунктам меню function GetMenuHelpContext(Menu: TMenu; aMessage: TWMHelp): Integer; begin Result := 0; if (Menu <> nil) then begin Result := Menu.GetHelpContext(aMessage.HelpInfo.iCtrlId, true); if (Result = 0) then Result := Menu.GetHelpContext(aMessage.HelpInfo.hItemHandle, false); end; end; procedure TForm1.WMHelp(var aMessage: TWMHelp); // Предполагается, что класс // формы называется TForm1 var Control: TWinControl; ContextId: integer; hlp: HWND; begin if (aMessage.HelpInfo.iContextType = HELPINFO_WINDOW) then begin Control := FindControl(aMessage.HelpInfo.hItemHandle); // Ищем активный компонент while ((Control <> nil) and (Control.HelpContext = 0)) do Control := Control.Parent; if (Control = nil) then Exit; ContextId := Control.HelpContext; // Смотрим у него HelpContext end else begin ContextId := GetMenuHelpContext(Menu, aMessage); // Для меню if (ContextId = 0) then ContextId := GetMenuHelpContext(PopupMenu, aMessage); end; hlp := HtmlHelp(Handle, 'c:\WINDOWS\Help\joy.chm', HH_HELP_CONTEXT, ContextId); if (hlp = 0) then ShowMessage('Помощь не найдена!'); end; // 5) вместо 'c:\WINDOWS\Help\joy.chm' - подставляешь свой CHM - файл. Пример использования: F1 в запущенной программе Сообщение отредактировал yuansw - 28.09.2005 - 07:41 |
![]() |
|
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 1.08.2025 - 12:56 |