2016-11-29 54 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。對於涉及控制的問題,使用中的框架可能是一個重要因素,應該提及避免引出可能不相關的答案。

相關問題