Иллюстрированный самоучитель по Delphi 7 для профессионалов

Ярлыки

Интервал времени по умолчанию равен 500 мс. Если в данный момент уже виден ярлычок другого компонента, то интервал времени ожидания задается свойством:

property HintShortPause: Integer;

По истечении этого времени, если мышь осталась над тем же элементом управления, наступает момент инициализации окна подсказки. При этом программист может получить управление, предусмотрев обработчик события объекта Application:

property OnShowHint: TShowHintEvent;
TShowHintEvent = procedure (var HintStr: string;
var CanShow: Boolean;
var Hintlnfo: THintlnfo) of object;

Рассмотрим параметры обработчика события OnShowHint:

  • Hintstr – отображаемый текст;
  • CanShow – необходимость (возможность) появления подсказки. Если в переменной CanShow обработчик вернет значение False, то окно подсказки высвечиваться не будет;
  • Hintinfo – структура, несущая всю информацию о том, какой элемент управления, где и как собирается показать подсказку. Ее описание:
THintlnfo = record
HintControl: TControl;
HintPos: TPoint;
HintMaxWidth: Integer;
HintColor: TColor;
CursorRect: TRect;
CursorPos: TPoint;
end;

Для показа окна подсказки необходимо еще, чтобы у элемента управления или у его предков в цепочке строка Hint была непустой. Впрочем, это можно исправить в обработчике OnShowHint:

procedure TForml.AppShowHint(var HintStr: string;
var CanShow: Boolean;var Hintlnfo: THintlnfo);
begin if HintStr='' then
begin
HintStr: = Hintlnfo.HintControl.Name; Hintlnfo.HintColor: = clRed; CanShow: = True;
end;
end;

Присвоив этот метод обработчику Application.OnShowHint, установив Form.showHint: = True и очистив все строки Hint, получим в качестве подсказки имя каждого элемента.

Длительность показа ярлычка задается свойством:

property HintHidePause: Integer;

По умолчанию его значение равно 2500 мс.

Свойство:

property HintShortCuts: Boolean;

…отвечает за показ вместе с текстом ярлычка описания "горячих" клавиш данного элемента управления.

Наконец, можно вручную "зажечь" и "потушить" ярлычок. При помощи метода:

procedure ActivateHint(CursorPos: TPoint);

…ярлычок показывается в точке CursorPos (система координат – экранная). "Спрятать" окно подсказки можно с помощью метода:

procedure CancelHint;

Без повторного перемещения мыши на текущий элемент оно более не возникнет.

Резюме

Delphi предоставляет разработчику набор стандартных программных механизмов, позволяющих добавлять к приложениям функции пользовательского интерфейса Windows. Кроме представленных здесь, разработчик может использовать расширенный набор функций, содержащийся в библиотеке Shell API, которой посвящена гл. 31.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.