Delphi World - Прямой вызов метода Hint
Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Прямой вызов метода Hint


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}

Строка с комментарием <<<< позиционирует подсказку ниже элемента управления. Это может быть изменено, если по какой-то причине вам необходима другая позиция окна с подсказкой.

Проект Delphi World © Выпуск 2002 - 2017
Автор проекта: Эксклюзивные курсы программирования