【发布时间】:2013-09-23 13:51:13
【问题描述】:
我正在尝试使用TCustomHint 向我的用户显示一条可以很好地淡入淡出的消息,以免过于分散注意力。但是,当我用一个点在我的对象上调用ShowHint 时,提示框似乎以我给出的点为中心。我想要的是让我的盒子出现这样它的左上角坐标就是给定的点。
这是我正在使用的代码,因此请显示提示:
procedure ShowNotification(ATitle: UnicodeString; AMsg: UnicodeString);
var
Box: TCustomHint;
P: TPoint;
begin
Box := TCustomHint.Create(MyForm);
Box.Title := ATitle;
Box.Description := AMsg;
Box.Delay := 0;
Box.HideAfter := 5000;
Box.Style := bhsStandard;
P.X := 0;
P.Y := 0;
Box.ShowHint(P);
end;
我知道我的点的 X/Y 坐标与表格无关,这不是问题所在。
我已经追踪了当我调用 ShowHint 时会发生什么,看来如果我能以某种方式控制 TCustomHint.ShowHint(Rect: TRect) 内部底层 TCustomHintWindow 的最终宽度,那么我可能会做生意。
所以我的问题是:有没有一种明显的方法可以阻止 TCustomHint 以我的观点为中心?或者我是否必须经历继承、覆盖绘图方法等的过程?我希望我只是缺少一些简单的东西。
【问题讨论】:
标签: delphi delphi-xe3