Приветствую Вас Гость | RSS

Меню сайта

Реклама

Категории раздела
CD-ROM [11]
DLL и PlugIns [75]
Help файлы [20]
INI файлы [16]
RS232 [2]
Активные директории [1]
Директории [0]
Диски [0]
Корзина [5]
Порты [26]
Ресурсы [0]
Файлы [0]
Форматы файлов [15]
Ярлыки [0]

Наш опрос
Есть ли у Вас свой сайт?
Всего ответов: 48

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Форма входа

Главная » Статьи » Файловая система » Help файлы

Вариант использования HTML Help в Делфи
{ **** 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 в запущенной программе

Категория: Help файлы | Добавил: Skinner (07.07.2008)
Просмотров: 460 | Рейтинг: 0.0/0
  Delphi Lab   Главная   Регистрация   Вход  
Интересная Цитата

Поиск

Магазин


Copyright MyCorp © 2025 Хостинг от uCoz