只能自己写控件这么实现。实际上就是在画这些字时,改变Font的Color属性。

解决方案 »

  1.   


      有难度,要tlabel来做这样的事?  别费心机了,d一个下来就ok啦
      

  2.   

    我想你可以先试试用
      label.canvas的一些属性和方法来试试!
      

  3.   

    最简单的方法,几个Label拼凑一下。
      

  4.   

    有一个极土的办法,在form上放几个不同颜色同一caption的label,然后只有需要的那个颜色的label的visible属性为true
      

  5.   

    请chechy指教,能说得更祥细点吗?
      

  6.   

    override Tlable里面的Paint方法
      

  7.   

    Canvas.Font.Color := clGreen;
    Canvas.TextOut(0, 0, 'Hello');
    Canvas.Font.Color := clRed;
    Canvas.TextOut(30, 0, ' world');
      

  8.   

    我觉得写一个function,然后用canvas.textout一个字符一个字符的输出
      

  9.   

    哈哈
       chechy你还是用了canvas!
      

  10.   

    难道用DC不成?有Canvas当然要用了。对了,我记得Canvas应该是Protected的。
      

  11.   

    用多个Label、RichEdit当然都不错。
    不料Chechy方法高。
    但又如何更改某一个字符的颜色呢?如:
    Canvas.Font.Color := clGreen;
    Canvas.TextOut(0, 0, 'Hello');
    现在Hello为Green,若要更改Hello中的e为红色,又怎么办?
    拜托Chechy,请指教。
      

  12.   

    拜托有第三方控件摆着不用劳神用canvas???
      

  13.   

    //需要算出字体的宽度,架设字符的宽度为a
    Canvas.Font.Color := clGreen;
    Canvas.TextOut(0, 0, 'H');
    Canvas.Font.Color := clRed;
    Canvas.TextOut(0, a, 'e');
    Canvas.Font.Color := clGreen;
    Canvas.TextOut(0, 2 * a, 'llo');
      

  14.   

    谢谢Checky。我已经做出来了。回头再给分。
    另外请问Hymn:哪有这样的第三方控件? 
      

  15.   

    使用Canvas或者用第三方控件,网上找找,程序员大本营的光盘种有
      

  16.   

    for i:=1 to 255 do
       for j:=1 to 64 do
    if Canvas.Pixels[i,j]<>clBlack then
      Label1.Canvas.Pixels[i,j]:=RGB(i,4*j,128)
      

  17.   

    错了,Label1:width=256,Height=64(假设)
    for i:=1 to 255 do
      for j:=1 to 64 do
    if Label1.Canvas.Pixels[i,j]<>clBlack then
      Label1.Canvas.Pixels[i,j]:=RGB(i,4*j,128)