Показать сообщение отдельно
  #2  
Старый 11.03.2020, 10:02
Maetsky Maetsky вне форума
Прохожий
 
Регистрация: 06.11.2018
Сообщения: 8
Версия Delphi: Delphi 2009
Репутация: 10
По умолчанию

Проблема решена ручками.
Объявил глобальную переменную THintWindow *HintWindow; в TForm1::FormCreate прописал HintWindow = new THintWindow(this);
ну и далее:
Код:
void SHint(int HWidth, int HHeight, UnicodeString HText) //процедура показа Hint
{
  TPoint pt = Mouse->CursorPos;
  TRect Rect;
  Rect.Left = pt.x;
  Rect.Top = pt.y+15;
  Rect.Right = Rect.Left + HWidth;
  Rect.Bottom = Rect.Top + HHeight;
  Form1->HintWindow->ActivateHint(Rect, HText);
  Form1->Timer1->Enabled=true;
}

void __fastcall TForm1::Timer1Timer(TObject *Sender) //процедура сокрытия Hint через некоторый интервал времени
{
  HintWindow->ReleaseHandle();
  Timer1->Enabled=false;
}

Пример использования для объекта кнопка:

Код:
void __fastcall TForm1::Button1MouseEnter(TObject *Sender) //показать Hint при наведении мыши
{
  SHint(145,30,"Виртуальная клавиатура\nVirtual keyboard");
}

void __fastcall TForm1::Button1TMouseLeave(TObject *Sender) //скрыть Hint принудительно
{
  Timer1Timer(Sender);
}
Можно в две строки Hint задавать.
Ответить с цитированием