我想使矩形显示一些信息。在这个Rectangle里面我有很多标签,在这个标签中我想用粗体显示一些文本。例如:'名称:'< - 粗体,在此之后不粗体。如何将我的标签中的某些字符更改为粗体?
如果这是不可能的,我怎么知道label.text的像素大小?如果我有这个信息,我可以创建两个标签并设置第二个位置:label2.position.X := label1.textWidth;
谢谢!
我想使矩形显示一些信息。在这个Rectangle里面我有很多标签,在这个标签中我想用粗体显示一些文本。例如:'名称:'< - 粗体,在此之后不粗体。如何将我的标签中的某些字符更改为粗体?
如果这是不可能的,我怎么知道label.text的像素大小?如果我有这个信息,我可以创建两个标签并设置第二个位置:label2.position.X := label1.textWidth;
谢谢!
使用标准标签控制你唯一的选择就是使用这样的控制,一个有Font.Style
包括fsBold,其他没有。
将您的第一个,大胆的标签,然后,只要你离开/设置AutoSize
属性真,则Width
属性会告诉你的宽度:
// Where:
//
// - boldLabel is a created, initialised and positioned
// label with bold text
//
// - normalLabel is a created and initialised label which
// has not yet been positioned (horizontally)
//
// - spacingPixels is the distance you wish to maintain
// between the two
normalLabel.Position.X := boldLabel.Position.X + boldLabel.Width + spacingPixels;
有一些第三方标签控件,其中许多是免费的+开放源代码(对于VCL [见下文]),其支持标签中不同程度的标记。 FMX可能有类似的实现。
对于VCL项目,您可能想要查看the JediVCL library,其中包括支持不仅仅是粗体而是其他HTML标签的HTML标签。如果这是有趣的,您在该库中查找的控件是TJvHTLabel。
注:对于未来的参考:您没有指定您的项目是FMX还是VCL,但是使用Position
属性显示它很可能是FMX。对于涉及控制的问题,使用中的框架可能是一个重要因素,应该提及避免引出可能不相关的答案。
最简单的解决方案是使用单独的标签。 –
我在运行时创建了这个,所以如果我使用2个标签,我需要知道第一个文本的结束位置。我怎么知道这个? –
label1.Canvas.TextWidth(label1.Caption) –