本人刚接触DELPHI,问个问题:
如果想让文本框内出现多行数字
每个数字都有其特定的颜色:如所有1是红,2是蓝等等
edit不支持颜色,
RichEdit1.SelAttributes.Color:=clRed只会改变一行的颜色,
在一行里单个字符要不同的颜色怎么弄.

解决方案 »

  1.   

    那如何实现这个问题
    每个数字都有其特定的颜色:如所有1是红,2是蓝等等 memo好像也不能控制颜色吧
      

  2.   


    //以下测试代码仅限在RichEdit中输入时使用
    procedure TForm1.RichEdit1KeyPress(Sender: TObject; var Key: Char);
    var
      TempColor: TColor;
    begin
      case Key of
        '0' : TempColor := clRed;
        '1' : TempColor := clBlue;
        '2' : TempColor := clYellow;
        else TempColor := clBlack;
      end;
      with TRichEdit(Sender) do begin
        SelStart := Length(Text) - 1;
        SelLength:= 1;
        SelAttributes.Color := TempColor;
      end;
    end;
      

  3.   


    //以下测试代码是假设RichEdit中已有许多字符,让他们按要求变色
    procedure TForm1.Button1Click(Sender: TObject);
    var
      TempColor: TColor;
      I : integer;
    begin
      with RichEdit1 do
        for I := 0 to Length(Text)-1 do begin
          case Text[I+1] of
            '0' : TempColor := clRed;
            '1' : TempColor := clBlue;
            '2' : TempColor := clYellow;
            else TempColor := clBlack;
          end;
          SelStart := I;
          SelLength:= 1;
          SelAttributes.Color := TempColor;
        end;
    end;