Вывод справочной информации




Чтобы вывести справочную информацию, которая находится в СНМ-файле, нужно воспользоваться ActiveX-компонентом (элементом управления) ньореп, который входит в состав Windows и представляет собой специальную динамическую библиотеку (файл Hhopen.ocx).

Первое, что следует сделать, — установить компонент Hhopen на одну из вкладок палитры компонентов. Для этого надо из меню Component выбрать команду Import ActiveX Control. На экране появится окно Import ActiveX, в котором будут перечислены все зарегистрированные в реестре Windows компоненты. В окне Import ActiveX, в списке зарегистрированных компонентов, нужно выбрать строку hhopen OLE Control module и щелкнуть на кнопке Install. В результате этого на экране появится диалоговое окно Install, в котором программист может выбрать пакет (packege — пакет, библиотека компонентов), в который будет добавлен устанавливаемый компонент. Компоненты, добавляемые программистом, "по умолчанию" добавляются в пакет dciusr. В результате щелчка на кнопке ОК выбранный компонент добавляется в пакет, и на экране появляется окно Package и запрос подтверждения процесса перекомпиляции пакета. По завершении процесса компиляции на экране появится окно, информирующее о том, что компонент добавлен в пакет и зарегистрирован. Значок компонента ньореп будет добавлен на вкладку ActiveX. В процессе компиляции будет создан файл представления компонента -- модуль HHOPENLib_TLIB.pas, который содержит описание методов, свойств и событий компонента.

Модуль представления можно увидеть, загрузив его в редактор кода из каталога \Delphi 7\Lib. Пролистав в окне редактора кода модуль HHOPENLib_TLIB.pas, который представляет собой интерфейс для доступа к элементу управления, можно найти описание класса тньореп (листинг 14.1).

Листинг 14.1. Описание класса THhореп

THhopen = class(Telecontrol)

Private

FIntf: _DHhopen;

function GetControlInterface: _DHhopen;

Protected

procedure CreateControl;

procedure InitControlData;

override;

Public

function OpenHelp(const HelpFile: WideString;

const HelpSection: WideString): Integer;

procedure CloseHelp;

property ControlInterface:_DHhopen

read GetControlInterface;

property DefaultInterface:_DHhopen

read GetControlInterface;

Published

property isHelpOpened: WordBool index 1

read GetWordBoolProp

write SetWordBoolProp

stored False;

end;

Класс тньореп предоставляет два метода: OpenHelp и CloseHelp.

Метод OpenHeip обеспечивает вывод справочной информации, метод close-Help — закрывает окно справочной системы.

У метода openHeip два параметра — имя файла справочной информации и имя раздела, содержимое которого будет выведено. В качестве имени раздела надо использовать имя HTML-файла, который применялся программой HTML Help Workshop в процессе создания СНМ-файла. Следует обратить внимание на то, что оба параметра должны быть строками widechar.

Следующая программа, ее диалоговое окно приведено на рис. 14.10, а текст — в листинге 14.2, демонстрирует использование ActiveX-компонента Hhopen для вывода справочной информации. Компонент нпореп добавляется в форму обычным образом. Так как во время работы программы он не отображается, то его можно поместить в любое место формы.

Рис. 14.10. Окно программы Использование ActiveX

Листинг 14.2. Использование компонента Hhopen unit ushh_;

Interface

Uses

Windows, Messages, SysUtils,

Classes, Graphics, Controls,

Forms, Dialogs, OleCtrls, HHOPENLibJTLB, StdCtrls;

Type

TForm1 = class (TForm) Label1: TLabel;

Editl: TEdit; // файл справки

Edit2: TEdit; //раздел справки (имя HTML-файла)

Button1: TButton; // кнопка Справка

Hhopen1: THhopen; // ActiveX-компонент Hhopen

Label2: TLabel;

Label3: TLabel;

procedure ButtonlClick(Sender: TObject);

Private

{ Private declarations }

Public

{ Public declarations }

end;

Var

Form1: TForm1;

Implementation

{$R *.DFM}

// щелчок на кнопке Справка

procedure TForm1.ButtonlClick(Sender: TObject);

Var

HelpFile: string; // файл справки

HelpTopic: string; // раздел справки

pwHelpFile: PWideChar;

// файл справки (указатель на строку WideChar)

pwHelpTopic: PWideChar;

// раздел (указатель на строку WideChar)

Begin

HelpFile:= Edit1.Text;

HelpTopic:= Edit2.Text;

// выделить память для строк WideChar

GetMemfpwHelpFile, Length(HelpFile) * 2);

GetMemfpwHelpTopic, Length(HelpTopic)*2);

// преобразовать Ansi-строку в WideString-строку

pwHelpFile:= StringToWideChar

(HelpFile,pwHelpFile,MAX_PATH*2)

pwHelpTopic:= StringToWideChar(HelpTopic,pwHelpTopic,32);

// вывести справочную информацию

Form1.Hhopen1.OpenHelp(pwHelpFile,pwHelpTopic);

end;

End.

Вывод справочной информации выполняет процедура обработки события Onciic на кнопке Справка. Так как параметры метода OpenHelp должны быть строками widechar, то сначала выполняется преобразование ANSI-строки В строку WideChar.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-03-27 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: