2016-11-29 37 views
1

我想使矩形显示一些信息。在这个Rectangle里面我有很多标签,在这个标签中我想用粗体显示一些文本。例如:'名称:'< - 粗体,在此之后不粗体。如何将我的标签中的某些字符更改为粗体?

如果这是不可能的,我怎么知道label.text的像素大小?如果我有这个信息,我可以创建两个标签并设置第二个位置:label2.position.X := label1.textWidth;

谢谢!

+0

最简单的解决方案是使用单独的标签。 –

+0

我在运行时创建了这个,所以如果我使用2个标签,我需要知道第一个文本的结束位置。我怎么知道这个? –

+3

label1.Canvas.TextWidth(label1.Caption) –

回答

4

使用标准标签控制你唯一的选择就是使用这样的控制,一个有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。对于涉及控制的问题,使用中的框架可能是一个重要因素,应该提及避免引出可能不相关的答案。

相关问题