Кент Рейсдорф. BORLAND C++BUILDER. Раздел 4
Кент Рейсдорф. BORLAND C++BUILDER. Страница 402
void fastcall TMainForm::HelpContentsClick(TObject* Sender)
{
Application->HelpCommand(HELP_CONTENTS, 0) ;
}
Метод HelpCommand() вызывает WinHelp с заданной командой (см. справку API Windows по WinHelpO, где содержится полный список доступных команд). В данном случае WinHelp вызывается с командой HELP_CONTENTS. Эта команда содержит указание WinHelp вывести страницу, которая была обозначена как страница содержания. Последний аргумент метода HelpCom- mand() передает WinHelp дополнительные данные. Этот параметр не используется с командой HELP_CONTENTS, поэтому он установлен в 0.
Реализация пункта меню Help Topics практически не отличается от реализации пункта Contents, но содержит другую команду:
void fastcall TMainForm::HelpTopicsClick(TObject* Sender)
{
Application->HelpCommand(HELP_FINDER, 0);
}
Команда HELP_FINDER в сочетании с идентификатором контекста, имеющим значение 0, указывает WinHelp вывести индекс справочного файла. Как я уже сказал, индекс создается вместе со справочным файлом.
Контекстно-зависимая справка по запросу
В большинстве своих приложений вам будет достаточно тех двух способов реализации справки, о которых я только что говорил. Но иногда вы должны непосредственно вызывать WinHelp с конкретным идентификатором контекста. Для выполнения этой процедуры VCL предоставляет метод HelpContext(). Этот метод получает в качестве единственного аргумента идентификатор контекста той страницы, которую вы хотите увидеть после запуска WinHelp.
Предположим, например, что нужная вам страница имеет идентификатор 99. Чтобы запустить WinHelp и вывести данную страницу, вы должны сделать следующее:
Application->HelpContext(99);
Указывая конкретный идентификатор контекста, вы можете заставить WinHelp вывести любую страницу вашего справочного файла по запросу.