2016-11-29 20 views
1

私はいくつかの情報を表示するために矩形を作ろうとしています。この長方形の中にはたくさんのラベルがあり、このラベルには太字のテキストをいくつか表示したいと思います。例: 'Name:' < - 太字で、太字ではありません。ラベルから太字に変更するにはどうすればよいですか?

これができない場合は、label.textのサイズをピクセル単位で知るにはどうすればよいですか?この情報があれば、2つのラベルを作成し、2番目のラベルの位置を次のように設定できます。label2.position.X := label1.textWidth;

ありがとう!あなたの唯一のオプションは、fsBold、他のないを含むFont.Styleと一つに、このようなコントロールを使用することで、標準のラベルコントロールを使用して

+0

最も簡単な解決策は、別々のラベルを使用することです。 –

+0

これは実行時に作成するので、2つのラベルを使用する場合は、最初のテキストがどこにあるのかを知る必要があります。どうすればこのことを知ることができますか? –

+3

label1.Canvas.TextWidth(label1.Caption) –

答えて

4

置き、あなたの最初の、太字のラベルその後、限り、あなたは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プロジェクトでは、太字ではなく、限られたHTMLマークアップをサポートするラベルを含むthe JediVCL libraryをチェックアウトすることができます。これが重要であれば、そのライブラリで探しているコントロールはTJvHTLabelです。

NB。将来の参照用:プロジェクトがFMXであるかVCLであるかは指定しませんが、Positionプロパティの使用時にはFMXである可能性が高いと表示されます。コントロールに関連する問題については、使用されているフレームワークが重要な要素になる可能性があり、関連性のない回答を引き起こさないように言及する必要があります。

関連する問題