Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Вариант использования HTML Help в Делфи

Автор: wl
WEB-сайт: http://delphibase.endimus.com

{ **** 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 - файл.

Пример использования:
F1 в запущенной программе

Проект Delphi World © Выпуск 2002 - 2024
Автор проекта: USU Software
Вы можете выкупить этот проект.