Проектирование графического интерфейса пользователя______________243

public:          // User declarations

fastcall TFormI(TComponent* Owner) ;

void _fastcall DisplayHint(TObject *Sender) ;

);

Теперь надо указать приложению на эту функцию как на обработчик события
OnHint. Это можно сделать, например, задав в обработчике события OnCreate фор-
мы оператор:

Application->OnHint = DisplayHint;

Таким образом, вывод подсказок в строку сводится к написанию двух обработ-
чиков событий (OnHint и OnCreate) по одному оператору каждый и к регистрации
в классе введенного вами обработчика.

Подсказки, конечно, помогают пользователю в работе, но они поневоле очень
краткие. Более подробные пояснения может дать контекстно-зависимая справка,
встроенная в приложение. Она позволяет пользователю нажать в любой момент
клавишу F1 и получить развернутую информацию о том компоненте в окне, кото-
рый в данный момент находится в фокусе. Для того, чтобы это осуществить, надо
разработать для своего приложения файл справки .help. Как это сделать подробно
описано в главе 8. Затем надо в компонентах, для которых вы хотите обеспечить
контекстно-зависимую справку, установить в свойстве HelpContext номер контек-
стной справки, соответствующей данному компоненту. Если HelpContext компо-
нента равен нулю, то данный компонент наследует это свойство от своего родитель-
ского компонента. Например, для всех компонентов, размещенных на некоторой
панели, можно задать HelpContext = 0, а для самой панели задать отличное от
нуля значение HelpContext, соответствующее теме, описывающей назначение всех
компонентов панели.

Для того, чтобы все это работало, надо выполнить команду Project Options и в
окне Project Options (опции проекта) на странице Application (приложение) устано-
вить значение опции Help file, равное имени подготовленного файла .hip. Это приве-
дет к тому, что в головном файле проекта автоматически появится оператор вида:

Application->HelpFile = "<имя файла>.п1р";

В этом операторе используется свойство приложения HelpFile, определяющее
файл справки, к которому обращается проект. Этот метод и подобный оператор
можно использовать в приложении в любом обработчике события, если в какие-то
моменты требуется сменить используемый файл справки.

Если предполагается, что файл справки будет расположен в том же каталоге,
где находится само приложение, то имя файла и в окне Опции проекта и в приве-
денном выше операторе надо задавать без указания пути. Иначе приложение, ра-
ботающее на вашем компьютере, перестанет работать на компьютере пользовате-
ля, у которого каталоги не совпадают с вашими.

Для того, чтобы приложение в свойствах HelpContext могло ссылаться на ка-
кой-то номер контекстной справки, в файле проекта справки .hpj в разделе [MAP]
надо поместить таблицу соответствия -использованных значений HelpContext и
тем файла .hip. Все необходимые для этого операции подробно рассмотрены в гла-
ве 8.

В заключение поговорим о традиционном разделе меню Справка, позволяю-
щем пользователю открыть файл справки .hip и получить развернутую информа-
цию по всем вопросам, связанным с данным приложением. В обработчик события
при выборе данного раздела меню или при нажатии соответствующих кнопок по-
мощи вставляются операторы вида

Application->HelpContext(<номер темы>);