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

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



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

  • Август
    2017
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс