TCustomLabel的MyLabel标题未更改

问题描述 投票:-2回答:1

我创建了一个从TMyLabel继承的组件TCustomLabel

如果布尔属性Caption设置为True,我想在SetPeriodAtEnd的末尾添加句点,如果将其设置为False,则删除句点。

我已经声明了布尔属性:

property SetPeriodAtEnd: Boolean read fPeriodAtEnd write SetPeriodAtEnd;
procedure TMyLabel.SetPeriodAtEnd(Value: Boolean);
begin
  fPeriodAtEnd := Value;
  if fPeriodAtEnd then
    Caption := Caption + '.......';
end;

SetPeriodAtEnd()仅更改一次时有效。以后甚至为[False]值添加......

而且,我的动机是仅在......中添加句号Caption以便查看,而不是作为值。例如,用于查看Caption := hello....并将其存储为Caption而没有句点的hello。这可能吗?

delphi properties caption delphi-10.2-tokyo
1个回答
0
投票

对于您要执行的操作,您可以覆盖虚拟的GetLabelText()方法:

返回GetLabelText()属性的值。

将GetLabelText调用为获取显示为标签文本的字符串

[内部,Caption在绘制TCustomLabel时使用GetTextLabel(),并且在Caption更改且Caption为真时调整自身大小时使用。因此,您可以覆盖AutoSize以提供与GetLabelText()设置不同的字符串,例如:

Caption
© www.soinside.com 2019 - 2024. All rights reserved.