2014-11-14 55 views
0

我不知道,但如果可能,我怎样才能改变Tlabel字体大小的一部分?TLabel部分字体大小

我想要什么:
enter image description here
这里是我的代码:

var 
    lbl : TLabel; 
    str : String; 
begin 
    str:= 'HELLO WORLD'; 
    lbl.Text:= str; 
end; 

请不要建议使用2标签进行合并,我必须使用一个标签,但我怎么也找不到我可以按字符更改尺寸或颜色吗?

回答

2

标准TLabel不允许使用不同的字体。第三方组件包中有一些这样的组件(任意示例 - 来自TMS的TRTFLabel)。

但是,你可以使用,例如,小TImage,并在它的Canvas上绘制文本与不同的风格(失去像autosize一些TLabel的可能性)。

var 
    w, h: Integer; 
begin 
    Image1.Canvas.Font.Size := 12; 
    h := Image1.Canvas.Font.Height; // in pixels 
    Image1.Canvas.TextOut(0, 20 + h, 'Big'); 
    w := Image1.Canvas.TextWidth('Big'); 
    Image1.Canvas.Font.Size := 8; 
    h := Image1.Canvas.Font.Height; // in pixels 
    Image1.Canvas.Font.Style := Image1.Canvas.Font.Style + [fsBold]; 
    Image1.Canvas.TextOut(W, 20 + h, 'SmallBold'); 
+0

你能给我一个关于绘制画布的例子吗?还是有没有免费的组件? – 2014-11-14 16:40:56

+2

我喜欢在图像控件上使用一个颜料盒 – 2014-11-14 16:53:43

+0

@David Heffernan对于初学者来说,(大部分)静态图片的Timage使用看起来更简单 - 无需关心Paint处理器并记住文本和格式。 – MBo 2014-11-14 17:10:17