有一个stringList
for i:=1 to stringList.count do
begin
   //第stringList.Items[i]要添加到richEdit  颜色要随即变化 即每一小串一个颜色
end;

解决方案 »

  1.   

    unit Unit144;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, ComCtrls;type
      TForm1 = class(TForm)
        RichEdit1: TRichEdit;
        procedure FormCreate(Sender: TObject);
        procedure FormDestroy(Sender: TObject);
      private
        color_list: TStringList;
      public
        procedure GetStrProc(const S: string);
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
    var
      i, m: integer;
    begin
      color_list := TStringList.Create;
      GetColorValues(GetStrProc);
      RichEdit1.Lines.Clear;
      for i := 0 to color_list.Count - 1 do
        begin
          m := length(RichEdit1.Lines.Text);
          RichEdit1.Lines.Add(color_list[i]);
          RichEdit1.SelStart := m;
          RichEdit1.SelLength := length(color_list[i]);
          RichEdit1.SelAttributes.Color := StringToColor(color_list[i]);
        end;                                                               
    end;procedure TForm1.GetStrProc(const S: string);
    begin
      color_list.Add(s);
    end;procedure TForm1.FormDestroy(Sender: TObject);
    begin
      FreeAndNil(color_list);
    end;end.
      

  2.   

    object Form1: TForm1
      Left = 192
      Top = 107
      Width = 696
      Height = 480
      Caption = 'Form1'
      Color = clBtnFace
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clWindowText
      Font.Height = -11
      Font.Name = 'MS Sans Serif'
      Font.Style = []
      OldCreateOrder = False
      OnCreate = FormCreate
      OnDestroy = FormDestroy
      PixelsPerInch = 96
      TextHeight = 13
      object RichEdit1: TRichEdit
        Left = 72
        Top = 56
        Width = 185
        Height = 345
        Font.Charset = GB2312_CHARSET
        Font.Color = clWindowText
        Font.Height = -11
        Font.Name = 'MS Sans Serif'
        Font.Style = []
        Lines.Strings = (
          'RichEdit1')
        ParentFont = False
        TabOrder = 0
      end
    end
      

  3.   

    搞定了  原来cxRichEdit好象有点BUG  
            cxRichEdit.SelAttributes.Color:=  clWindowText;
            cxRichEdit.Lines.Add(sOldList.Strings[i]); 
    这样都报错_-##
      

  4.   

    withcsharp() 的代码好多多余的  
        for i := 0 to color_list.Count - 1 do
        begin
          RichEdit1.SelAttributes.Color := ;
          RichEdit1.Lines.Add();
        end;  就可以了