如何将标签中的某些字符更改为粗体?

How change just some characters from my label to bold?

我正在尝试制作一个矩形来显示一些信息。在这个矩形里面我有很多标签,在这个标签中我想用粗体显示一些文本。例如:'Name:' <- 加粗,此后不加粗。

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

谢谢!

使用标准标签控件,您唯一的选择是使用两个这样的控件,其中一个带有Font.Style,包括fsBold,另一个不是。

放置第一个粗体标签,然后只要您 leave/set AutoSize 属性 trueWidth 属性 会告诉你宽度:

// 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;

有许多第 3 方标签控件,其中许多是免费+开源的(对于 VCL [见下文]),它们支持标签中不同程度的标记. FMX 可能有类似的实现。

对于 VCL 项目,您可能需要查看 the JediVCL library which includes a label supporting not just bold but other, albeit limited HTML markup. If this is of interest, the control you are looking for in that library is TJvHTLabel

注意。对于未来的参考: 您没有指定您的项目是 FMX 还是 VCL,但从使用 Position 属性 看来它很可能是 FMX。对于涉及控制的问题,使用的框架可能是一个重要因素,应该提及以避免引出可能不相关的答案。