17.10. ПОДДЕРЖКА СПРАВОЧНОЙ СЛУЖБЫ

Все видимые элементы имеют свойства

property Hint: String;

property ShowHint: Boolean;

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

Чтобы компонент смог показать ярлычок, нужно поместить текстовую строку в его свойство Hint и присвоить свойству showHint значение True. Обычно ярлычок содержит максимально лаконичный текст, чтобы не отнимать слишком большую площадь экрана. Вы можете дополнить этот текст развернутым сообщением в любом компоненте, который способен отображать текст. Как правило, это панель статуса, занимающая нижнюю часть формы. Чтобы отобразить <<длинное” сообщение, его нужно прежде всего поместить в строку Hint сразу после “короткого” и отделить обе части символом “[”.

Например:

MyControl.Hint := 'Подсказка!Развернутое сообщение';

Далее, необходимо в самом начале программы (обычно в обработчике события Oncreate главной формы) указать программе метод, который будет обрабатывать событие onHint. Это событие возникает в момент появления ярлычка и предназначено для отображения длинного сообщения, которое метод-обработчик может получить в свойстве Hint глобального объекта Application.

Например:

type

TFormI= class (TForm) pnStatus: TPanel; {Панель для отображения длинной части Hint}

public

// Объявляем метод-обработчик события OnHint:

procedure ShowLongHint(Sender: TObject);

end;

procedure TFormI.ShowLongHint(Sender: TObject);

{Этот обработчик помещает на панель pnStatus длинную часть Hint}

begin

pnStatus.Caption := Application.Hint;

end;

procedure TFormI.FormCreate(Sender: TObject) ;

// Метод определяет свойство OnHint объекта-программы

begin

Application.OnHint := ShowLongHint;

end ;

Обратите внимание: обработчиком события OnHint должен быть метод класса, а не обычная процедура. Вот почему в предыдущем примере в секцию public класса TForm1 вставлено описание метода

ShowLongHint.

И еще одно замечание. Обычно свойство Hint у компонента устанавливается на этапе конструирования формы. В этом случае вы можете создать только однострочный ярлычок. Если же установить свойство Hint на этапе прогона, вы сможете вставить в символьную строку разделители EOLN и таким способом создать многострочный ярлычок:

bbClose.Hint := 'Эта кнопка'#13'завершает работу '#13'программы';

Следующие свойства глобального объекта-программы Application регулируют цвет и время появления ярлычка:

property HintColor: TColor; | Определяет цвет фона ярлычка
property HintHidePause: Integer; | Определяет длительность показа ярлычка в миллисекундах. По умолчанию равно 2500 (2,5 секунды). Чтобы ярлычок вообще не убирался, установите значение -1
property HintPause: Integer; | Определяет паузу в миллисекундах после остановки указателя мыши и перед появлением ярлычка. По умолчанию равно 500
property HintShortPause: Integer; | Определяет паузу перед появлением ярлычка при переходе с одного компонента с заданным свойством Hint на другой такой же. По умолчанию равно 50

Все видимые компоненты содержат свойство

property HelpContext: Integer;

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

У многих видимых компонентов имеется свойство

property PopupMenu: TPopupMenu;

определяющее вспомогательное меню. Это меню вызывается нажатием правой кнопки мыши в момент, когда указатель находится над компонентом.