Событие OnHint
не предоставляет доступа к какой-либо информации об элементе управления, отображающем подсказку.
Однако событие OnShowHint
делает и вы можете полностью настроить подсказку так, как хотите в этом случае:
procedure TForm1.ApplicationEvents1ShowHint(var HintStr: string;
var CanShow: boolean; var HintInfo: THintInfo);
begin
if HintInfo.HintControl = DesiredControl then
begin
// customize HintStr, and/or HintInfo fields, as needed...
end;
end;
procedure TForm1.ApplicationEvents1Hint(Sender: TObject);
begin
statMain.SimpleText := Application.Hint;
end;
HintInfo
предоставляет все виды информации о подсказке, которую можно настроить:
HintControl
Имя элемента управления, для которого выполняется обработка подсказки.
HintWindowClass
Класс элемента управления окна подсказки. По умолчанию используется THintWindow, но вы можете указать любой класс, производный от THintWindow. Используйте это поле, если хотите заменить пользовательское окно подсказки на THintWindow.
HintPos
Положение по умолчанию в экранных координатах левого верхнего угла окна подсказки. Измените местоположение окна, изменив это значение.
HintMaxWidth
Максимальная ширина окна подсказки перед началом переноса слов. По умолчанию значением является ширина экрана (свойство Width глобальной переменной Screen).
HintColor
Цвет фона окна подсказки.
CursorRect
Прямоугольник, на котором должен находиться указатель мыши, должен появиться окно подсказки. Значением по умолчанию для CursorRect является клиентский прямоугольник элемента управления. Измените это значение, чтобы один элемент управления можно было разделить на несколько областей подсказок. Когда пользователь перемещает указатель мыши за пределы прямоугольника, окно подсказки исчезает.
CursorPos
Расположение указателя мыши в элементе управления.
ReshowTimeout
Как долго подсказка Система должна подождать, прежде чем снова спрашивать о статусе подсказки. По умолчанию это поле равно нулю, что указывает на то, что статус подсказки не изменится. Установка его в ненулевое значение приведет к тому, что подсказка будет действовать после истечения запрошенных миллисекунд, как если бы пользователь переместил мышь за пределы прямоугольника подсказки и вернулся обратно. Это можно использовать, чтобы отложить обработку подсказки на период или разрешить периодически обновлять подсказку.
HideTimeout
Количество миллисекунд, на которое отображается подсказка. По умолчанию для него установлено значение свойства HintHidePause переменной приложения.
HintStr
Строка, отображаемая в окне подсказок. Это позволяет обработчику события OnHint изменять содержимое подсказки перед ее отображением. По умолчанию он содержит значение, возвращаемое функцией GetShortHint при передаче значения свойства Hint переменной приложения.
HintData
Дополнительные данные, передаваемые элементу управления окна подсказки. Используйте это поле вместе с HintWindowClass.
Кроме того, к вашему сведению, вам не нужно использовать событие TApplication(Event).OnHint
только для отображения текста TApplication.Hint
в TStatusBar
. Если для свойства StatusBar AutoHint
установлено значение true, то StatusBar может автоматически отображать TApplication.Hint
обновлений. Вам просто нужно убедиться, что у вас нет назначенного обработчика OnHint
, иначе AutoHint
не будет работать (хотя OnShowHint
хорошо).