有一个笨一点的办法如下:
procedure TFormChat.ButtonSubmitClick(Sender: TObject);
var
    iStartPos,iFindPos:integer;
    sSearchStr:string;
begin
    RichEdit1.Lines.Add('caoyq');
    RichEdit1.Lines.Add(datetimetostr(now()));
    iStartPos:=0;
    sSearchStr:='caoyq';
    iFindPos:=RichEdit1.FindText(sSearchStr,iStartPos,length(RichEdit1.Text),[stWholeWord]);
    while iFindPos<>-1 do
    begin
        RichEdit1.SelStart :=iFindPos;
        RichEdit1.SelLength :=length(sSearchStr);
        RichEdit1.SelAttributes.Color :=clRed;
        iStartPos:=iFindPos+Length(sSearchStr);
        iFindPos:=RichEdit1.FindText(sSearchStr,iStartPos,length(RichEdit1.Text)-iStartPos,[stWholeWord]);
    end;
end;