function RevealHint(Control: TControl): THintWindow;
{----------------------------------------------------------------}{ Демонстрирует всплывающую подсказку для определенного элемента }{ управления (Control), возвращает ссылку на hint-объект, }{ поэтому в дальнейшем подсказка может быть спрятана вызовом }{ RemoveHint (смотри ниже). }{----------------------------------------------------------------}var
ShortHint: string;
AShortHint: array[0..255] of Char;
HintPos: TPoint;
HintBox: TRect;
begin{ Создаем окно: }
Result := THintWindow.Create(Control);
{ Получаем первую часть подсказки до '|': }
ShortHint := GetShortHint(Control.Hint);
{ Вычисляем месторасположение и размер окна подсказки }
HintPos := Control.ClientOrigin;
Inc(HintPos.Y, Control.Height + 6);
< < < < Смотри примечание ниже
HintBox := Bounds(0, 0, Screen.Width, 0);
DrawText(Result.Canvas.Handle,
StrPCopy(AShortHint, ShortHint), -1, HintBox,
DT_CALCRECT or DT_LEFT or DT_WORDBREAK or DT_NOPREFIX);
OffsetRect(HintBox, HintPos.X, HintPos.Y);
Inc(HintBox.Right, 6);
Inc(HintBox.Bottom, 2);
{ Теперь показываем окно: }
Result.ActivateHint(HintBox, ShortHint);
end; {RevealHint}procedure RemoveHint(var Hint: THintWindow);
{----------------------------------------------------------------}{ Освобождаем дескриптор окна всплывающей подсказки, выведенной }{ предыдущим RevealHint. }{----------------------------------------------------------------}begin
Hint.ReleaseHandle;
Hint.Free;
Hint := nil;
end; {RemoveHint}
Строка с комментарием <<<< позиционирует подсказку ниже элемента управления. Это может быть изменено, если по какой-то причине вам необходима другая позиция окна с подсказкой.
Статья Прямой вызов метода Hint раздела Синтаксис Hint подсказки может быть полезна для разработчиков на Delphi и FreePascal.
Комментарии и вопросы
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.