2016-11-29 12 views
1

Я пытаюсь сделать Rectangle, чтобы показать некоторую информацию. Внутри этого прямоугольника у меня много ярлыков, и на этих ярлыках я хочу выделить некоторые тексты жирным шрифтом. Например: 'Name:' < - Полужирный, а после этого не выделен жирным шрифтом.Как изменить некоторые символы с моего ярлыка на полужирный?

Если это невозможно, как узнать размер в пикселях 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. Если это интересно, элемент управления, который вы ищете в этой библиотеке, - TJvHTLabel.

NB. В будущем ref: Вы не указываете, является ли ваш проект FMX или VCL, но из-за использования свойства Position оно может быть FMX. Для вопросов, связанных с контролем, используемая структура может быть значительным фактором и должна упоминаться, чтобы избежать выявления ответов, которые могут быть неактуальными.