Принудительное использование неблокирующего временного окна подсказок в Delphi


Я искал,но не смог найти решение, поэтому я решил, что, возможно, мне следует просто опубликовать его.

Вот что я хотел бы сделать в Delphi (2009):

В определенный момент в моем приложении я хотел бы показать сообщение пользователю.

Это должно быть обычное окно подсказки, которое автоматически исчезает после паузы подсказки, определенной обычным приложением, с пользовательским сообщением(и имеет его автоматический размер и т. д.).

Это должно быть неблокирующим, как обычно подсказка, не зависящая от текущего контроля или чего-то еще.

"просто покажите чертово сообщение", в окне подсказки приложения и продолжайте.

Есть какие-нибудь зацепки?

2 5

2 ответа:

Вы можете использовать CustomHint :

with TCustomHint.Create(Self) do begin
  Title := 'temporary message';
  Delay := 0;
  HideAfter := 2000;
  ShowHint(Point(X, Y));
end;

Однако он уничтожается не в то время, когда он скрыт, а когда его владелец (Я) уничтожается. Но вы, конечно, можете повторно использовать тот же экземпляр подсказки.

Вы можете использовать THintWindow за это. Создайте экземпляр THintWindow и когда вы хотите показать окно вызова ActivateHint. Когда вы будете готовы закрыть окно позвоните ReleaseHandle. Если вы хотите, чтобы окно подсказок закрылось через некоторое время, вы захотите запустить таймер, чтобы предоставить вам возможность ReleaseHandle, Когда время истекло.