Создание файла справки в Delphi: Вывод справочной информации

Значок компонента 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.

������� ������ ��� dle ������� ��������� ������

Помоги проекту! Расскажи друзьям об этом сайте: