我正在尝试创建 TLabel 后代,当文本宽度超过标签宽度时,它将显示带有整个标题的提示。我已将 EllipsisPosition 属性设置为 epEndEllipsis,并且我的标题在末尾自动被省略号缩短。没关系。
但是需要通知我,文本已被缩短以设置提示。在我的情况下,这可能仅在更改文本(消息 CM_TEXTCHANGED)和调整组件大小时发生。
这就是我的问题 -如何通知我 TLabel 已调整大小?我在那里有锚点,所以它与表单一起调整大小,但我想将它包装在单独的 TLabel 后代中。
此代码有效,但没有更好的方法吗?像 WM_EXITSIZEMOVE 之类的东西,但为 TGraphicControl 工作?
procedure TEllipsisLabel.WMWindowPosChanged(var Message: TWMWindowPosChanged);
begin
inherited;
if Assigned(Parent) then
if Canvas.TextWidth(Caption) > Width then
begin
ShowHint := True;
Hint := Caption;
end
else
begin
ShowHint := False;
Hint := '';
end;
end;
非常感谢 :)