Вариант использования HTML Help в ДелфиDelphi , Файловая система , Help файлы
Автор: wl { **** UBPFD *********** by delphibase.endimus.com **** >> Вариант использования HTML-Help в делфи Зависимости: HHCtrl.ocx Автор: wl, wl@ezmail.ru, Киров Copyright: MSDN Дата: 8 июля 2003 г. ***************************************************** } // 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 - файл.
Пример использования: Пример использования HTML Help в Delphi для отображения содержимого справки. Вот разбивка кода: Зависимости
Код требует компонента Константы Код определяет несколько констант, связанных с HTML Help:
Функция
Код определяет функцию
Обработка событий
Код определяет обработчик события для сообщения Имплементация В разделе реализации код определяет два процедура:
Пример использования
Чтобы использовать этот код в вашем приложении Delphi, вам нужно:
1. Добавить компонент В статье описывается способ интеграции HTML Help в приложении на языке Delphi, который позволяет пользователю получать помощь по определенным пунктам меню или компонентам. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Help файлы ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |