Значок компонента Hhopen будет добавлен на вкладку ActiveX (рис. 14.40). В процессе компиляции будет создан файл представления компонента — модуль HHOPENLib_TLIB.pas, который содержит описание методов, свойств и событий компонента.
Рис. 14.36. Установка компонента hhopen
Рис. 14.37. Выбор пакета дпо установки компонента
Рис. 14.38. Процесс компиляции пакета
Рис. 14.39. Процесс установки компонента Hhopen завершен
Рис. 14.40. Значок компонента Hhopen
Модуль представления можно увидеть, загрузив его в редактор кода из каталога \Delphi 7\Lib. Пролистав в окне редактора кода модуль HHOPENLib_TLIB.pas, который представляет собой интерфейс для доступа к элементу управления, можно найти описание класса THhopen (листинг 14.1).
Листинг 14.1. Описание класса THhopen
01.
THhopen =
class
(TOleControl)
02.
private
03.
FIntf: _DHhopen;
04.
function
. GetControlInterface: _DHhopen;
05.
protected
06.
procedure
CreateControl;
07.
procedure
TnitControlData; override;
08.
public
09.
function
OpenHelp(
const
HelpFile: WideString;
10.
const
HelpSection: WideString): Integer;
11.
procedure
CloseHelp;
12.
property
ControlInterface: _DHhopen read GetControlInterface;
13.
property
Defaultlnterface: _DHhopen read GetControlInterface;
14.
published
15.
property
isHelpCpened: WordBool index
1
16.
read GetWordBoolProp
17.
write
SetWordBoolProp stored False;
18.
end
;
Класс THhopen предоставляет два метода: OpenHelp и cioseHeip. Метод OpenHelp обеспечивает вывод справочной информации, метод CloseHelp — закрывает окно справочной системы.
У метода openHelp два параметра — имя файла справочной информации и имя раздела, содержимое которого будет выведено. В качестве имени раздела надо использовать имя HTML-файла, который применялся программой HTML Help Workshop в процессе создания СНМ-файлз. Следует обратить внимание на то, что оба параметра должны быть строками widechar.
Следующая программа, ее диалоговое окно приведено на рис. 14.41, а текст — в листинге 14.2, демонстрирует использование ActiveX-компонента Hhopen для вывода справочной информации. Компонент Hhopen добавляется в форму обычным образом. Так как во время работы программы он не отображается, то его можно поместить в любое место формы.
Рис. 14.41. Окно программы Использование ActiveX
Листинг 14.2. Использование компонента Hhopen
01.
unit
ushh ;
02.
interface
03.
uses
04.
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
05.
Dialogs, OleCtrls, HHOPENLibJTLB, StdCtrls;
06.
type
07.
TForml =
class
(TForm)
08.
Labell: TLabel;
09.
10.
Editl: TEdit;
// файл справки
11.
Edit2: TEdit;
// раздел справки (имя HTML-файла)
12.
Buttonl: TButton;
// кнопка Справка
13.
Hhoperil: THhopen;
// ActiveX-компонент Hhopen
14.
Label2: TLabel;
15.
Label3: TLabel;
16.
procedure
ButtonlClick(Sender: TObject! ;
17.
private
18.
I Private declarations )
19.
public
20.
{ Public declarations )
21.
end
;
22.
var
23.
Formlr TForral;
24.
implementation
25.
(
$R
".DEW)
26.
// щелчок на кнопке Справка
27.
procedure
TForml
.
ButtonlClickfSender: TObject);
28.
var
29.
HelpFile :
string
;
// файл справки
30.
HelpTopic :
string
;
// раздел справки
31.
pwHelpFile : PWideChar;
// файл справки (указатель на строку HideChar)
32.
pwHelpTopic : PWideChar;
// раздел ('указатель на строку WideChar)
33.
begin
34.
HelpFile := Editl
.
Text;
35.
HelpTopic := Edit2
.
Text;
36.
// выделить память для строк WideChar
37.
GetMern(pwHelpFile, Length(HelpFile] *
2
);
38.
GetMemfpwHelpTopic, Length (HelpTopic) *
2
) ,-
39.
// преобразовать Ansi-стрску в NideString-строку
40.
41.
pwHelpFile := StringToWideChar (HelpFile,pwHelpFile,MAX_PATH*
2
];
42.
pwHelpTopic := StringToWideChar(HelpTopic,pwHelpTopic,
32
];
43.
// вывести справочную информацию
44.
Fornu
.
Hhopenl,OperiHelp(pwHelpFile,pwHelpTopic);
45.
end
;
46.
end
.
Вывод справочной информации выполняет процедура обработки события OnClic на кнопке Справка. Так как параметры метода openHelp должны быть строками widechar, то сначала выполняется преобразование ANSI-строки В строку wideChar.