Фоновый цвет окна подсказки можно изменить посредством свойства

property HintColor: TColor;

У объекта Application значение свойства showHint нужно устанавливать во время выполнения, например, в обработчике onCreate главной формы приложения. Оно является главенствующим для всей системы подсказок: если оно установлено в значение False, ярлычки не возникают.

Есть еще один способ получения подсказки. При смене текущего элемента управления (т. е. при смене текста в свойстве Hint) в объекте Application возникает событие

property OnHint: TNotifyEvent; Пример:

procedure TForml. AppHint (Sender: TObject) ;
begin
Panell. Caption: = Application. Hint;
end;
proce±ireTForml. FormCreate (Sender: TDbject) ;
begin
Application.OnHint := AppHint;
end;

В этом примере текст подсказки будет отображаться в строке состояния Panell независимо от значения ShowHint у любого объекта - лишь бы этот текст был в наличии. Для этого разделяйте подсказку у элементов управления вашего приложения на две части при помощи символа " |" - краткая информация появится рядом с элементом, а более полная - в строке состояния.

function GetLongHint (const Hint: string): string;
function GetShortHint (const Hint: string): string;

У других компонентов свойство showHint интерпретируется системой так: когда курсор мыши останавливается над элементом управления или пунктом меню, и приложение не занято обработкой сообщения, происходит проверка, и если свойство showHint у элемента или у одного из его родительских элементов в иерархии равно True, то начинается ожидание.

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

property HintPause: Integer;

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

property HintShortPause: Integer;

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

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

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

О Hintstr - отображаемый текст;
О CanShow - необходимость (возможность) появления подсказки. Если в переменной CanShow обработчик вернет значение False, то окно подсказки высвечиваться не будет;

О Hintlnfo - структура, несущая всю информацию о том, какой элемент управления, где и как собирается показать подсказку. Ее описание:

THintlnfo = record

HrntControl: TControl;
HrntPos: TPornt;
HintMaxWidth: Integer;
HrntColor: TColor;
CursorRect: TRect;
CursorPos: TPoint;
end;

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

procedure TForml .AppShowHint (var HintStr: string; var CanShow: Boolean;var Hintlnfo: THintlnfo) ; begin if HintStro' ' then


⇐ Предыдущая страница| |Следующая страница ⇒

Программирование в Delphi 7



Новости за месяц

  • Апрель
    2020
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31