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;
определяющее вспомогательное меню. Это меню вызывается нажатием правой кнопки мыши в момент, когда указатель находится над компонентом.