Forcing a non blocking temporary hint window in Delphi

萝らか妹 提交于 2020-01-01 11:39:13

问题


I've been searching, but cannot find a solution so I figured perhaps I should simply post it.

Here's what I'd like to do, in Delphi (2009):

At a certain moment in my application, I'd like to show a message to the user.

This should be the normal hint window, which automatically disappears after the normal application defined hint pause, with a custom message (and have it automatically sized etc etc).

This should be non blocking, like a normal hint, not dependent on the current control or whatever.

"Just show the damn message", in the Application hint window and carry on.

Any clues?


回答1:


You can use a CustomHint:

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

However it is not destroyed at the time it's hidden, but when its owner (Self) is destroyed. But you can of course re-use the same hint instance.




回答2:


You can use THintWindow for this. Create an instance of THintWindow and when you want to show the window call ActivateHint. When you are ready to close the window call ReleaseHandle. If you want to have the hint window close after a period of time, you'll want to run a timer to allow you the opportunity to ReleaseHandle when time is up.



来源:https://stackoverflow.com/questions/22870464/forcing-a-non-blocking-temporary-hint-window-in-delphi

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!