我创建了一个从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
。这可能吗?
对于您要执行的操作,您可以覆盖虚拟的GetLabelText()
方法:
返回
GetLabelText()
属性的值。将GetLabelText调用为获取显示为标签文本的字符串。
[内部,Caption
在绘制TCustomLabel
时使用GetTextLabel()
,并且在Caption
更改且Caption
为真时调整自身大小时使用。因此,您可以覆盖AutoSize
以提供与GetLabelText()
设置不同的字符串,例如:
Caption