2016-11-29 1 views
1

Ich versuche ein Rechteck zu machen, um einige Informationen anzuzeigen. Innerhalb dieses Rectangle habe ich viele Labels, und in diesen Labels möchte ich fett gedruckte Texte zeigen. Zum Beispiel: 'Name:' < - Fett, und danach nicht fett.Wie ändere ich nur einige Zeichen von meinem Label auf fett?

Wenn dies nicht möglich ist, wie kann ich die Größe eines label.text in Pixeln wissen? Wenn ich diese Informationen habe, kann ich zwei Etiketten erstellen und die Position der zweiten festlegen: label2.position.X := label1.textWidth;

Vielen Dank!

+0

Die einfachste Lösung ist die Verwendung separater Etiketten. –

+0

Ich erstelle dies in der Laufzeit, also, wenn ich 2 Etiketten verwende, muss ich wissen, wo der Text des ersten endet. Wie kann ich das wissen? –

+3

label1.Canvas.TextWidth (label1.Caption) –

Antwort

4

Mit dem Standard-Label steuern Ihre einzige Option zwei solche Kontrollen zu verwenden ist, eine mit Font.Style einschließlich fsBold, der andere nicht.

Platzieren Sie Ihre erste, fett Etikett dann so lange, wie Sie die AutoSize Eigenschaft wahr, setzen lassen/die Width Eigenschaft erhalten Sie die Breite sagen:

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

Es gibt eine Reihe von 3. Kontrollen Partylabel , viele von ihnen frei + Open Source (für VCL [siehe unten]), die unterschiedliche Grade von Markup in einem Etikett unterstützen. Es kann ähnliche Implementierungen für FMX geben.

Für VCL-Projekte möchten Sie vielleicht the JediVCL library auschecken, die eine Beschriftung enthält, die nicht nur Fett unterstützt, sondern auch andere, wenn auch begrenzte HTML-Auszeichnungen. Wenn dies von Interesse ist, ist die Kontrolle, die Sie in dieser Bibliothek suchen, TJvHTLabel.

NB. Für zukünftige Ref: Sie geben nicht an, ob es sich bei Ihrem Projekt um FMX oder VCL handelt, aber bei der Verwendung der Eigenschaft Position scheint es wahrscheinlich, dass es sich um FMX handelt. Bei Fragen, die Kontrollen betreffen, kann der verwendete Rahmen ein wichtiger Faktor sein und sollte erwähnt werden, um zu vermeiden, dass Antworten gefunden werden, die möglicherweise nicht relevant sind.

Verwandte Themen