我想使矩形顯示一些信息。在這個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) –