Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Последние темы форума

Показать новые сообщения »

Почтовая рассылка

Подписчиков: 11656
Последний выпуск: 19.06.2015

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

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

Класс THhopen предоставляет два метода: 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.

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 

Комментарии

1.
Аноним
Мне нравитсяМне не нравится
29 мая 2006, 14:05:44
Скачал файл по линку. Затем в окне Imort ActiveX Control выбрал Add. Указал скаченный файл. Дальше по написанному. Все заработало.
2.
Аноним
Мне нравитсяМне не нравится
10 мая 2006, 02:42:31
hhctrl.ocx я нашел, линк _http://freeware.it-mate.co.uk/downloads/controls/ hhopen.zip, но один фиг так как написано у меня ничего не вышло. пробуйте, если у вас че выйдет, пишите.
3.
Аноним
Мне нравитсяМне не нравится
20 апреля 2006, 11:42:39
Точно такая же проблема. В многих источниках видел про такой файл и его имя в окне. Но у меня такого нигде не обнаружилось:( Обидно как-то.
А есть ли альтернативный способ?
4.
Аноним
Мне нравитсяМне не нравится
17 ноября 2005, 20:03:14
че-то не нашел я ентот файл типа hhopen.ocx ни выньХП, ни в вынь2003 сервер...
а существует ли он???
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог