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

Советы » Help файлы » Вывод справочной информации

Чтобы вывести справочную информацию, которая находится в СНМ-файле, нужно воспользоваться 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 7Lib. Пролистав в окне редактора кода модуль HHOPENLib_TLIB.pas, который представляет собой интерфейс для доступа к элементу управления, можно найти описание класса THhopen

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 для вывода справочной информации. Компонент нпореп добавляется в форму обычным образом. Так как во время работы программы он не отображается, то его можно поместить в любое место формы.

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.

Другое по теме:

Категории

Статьи

Советы

Copyright © 2022 - All Rights Reserved - www.delphirus.com