[Решено] "Актуальный" hint

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

[Решено] "Актуальный" hint

Сообщение kotompazb » 21.09.2016 00:43:42

Есть TMemo. Необходимо, чтобы при движении мыши над ним старый hint (если он есть) скрывался, а при остановке появлялся новый, с актуальным содержимым. И уже висел, пока мышь снова не придет в движение.
Что-то вроде того, как это работает в самом редакторе Lazarus, но попроще (там hint не исчезает при движении мыши над одним и тем же словом).
:?: Как сие можно реализовать?
Спасибо.
Последний раз редактировалось kotompazb 21.09.2016 01:30:33, всего редактировалось 1 раз.
Аватара пользователя
kotompazb
постоялец
 
Сообщения: 151
Зарегистрирован: 21.06.2012 13:03:39
Откуда: Novosibirsk, xUSSR

Re: "Актуальный" hint

Сообщение скалогрыз » 21.09.2016 01:12:13

ну и ппц какой-то. До чего API неочевидный.

Вот у меня под виндой заработал такой код
Код: Выделить всё
procedure TForm1.Memo1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  Application.CancelHint;
  Application.ActivateHint( Mouse.CursorPos );
  Memo1.Hint:=FormatDateTime( 'hh:nn:ss', now); // у Memo1.ShowHint:=true через инспектор
end;

Но мягко говоря - он хакерский! (если CancelHint - это понятно, то ActiveHint() там идёт только чтобы "восстановить" функционал контрола, см ниже.)

А вот если сделать так
Код: Выделить всё
procedure TForm1.Memo1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  Application.CancelHint; // или так Application.HideHint;
  Memo1.Hint:=FormatDateTime( 'hh:nn:ss', now); // у Memo1.ShowHint:=true через инспектор
end;

то хинт на мемке больше не появится вообще.
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

Re: "Актуальный" hint

Сообщение kotompazb » 21.09.2016 01:26:14

Вот и я тоже без ActiveHint() пробовал... не появлялся... вообще...
Буду пробовать. Спасибо.
Проверил. Работает. Сам бы еще долго искал...
Спасибо еще раз.
Аватара пользователя
kotompazb
постоялец
 
Сообщения: 151
Зарегистрирован: 21.06.2012 13:03:39
Откуда: Novosibirsk, xUSSR


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 236

Рейтинг@Mail.ru