如何在TRichEdit中设置指定单词的颜色,大小,例如关键字颜色为黑体\引号之间这蓝色.
别告诉我用
  RichEdit1.SelStart := iPosition ;
  RichEdit1.SelLength  := iLength ;
  RichEdit1.SelAttributes := SelectColor;
当然这样是可以,但是很慢,算法很差

解决方案 »

  1.   

    你或者查阅一下synedit和其他的编辑器控件的代码吧,看看别人是怎么做的咯
      

  2.   

    这个本身就很慢!如果要做关键字高亮,最好不要用RichEdit来做
      

  3.   

    晕死,我上司要我写一个ORACLE存储过程解释器, 别的都差不多了,妈的还要关键字高亮.......我天,一个月给我那么点薪水,把我当超人在搞
      

  4.   

    1.用三方的编辑器(jv的有支持语法高亮的文本编辑控件,支持10多中语言 vb+c等)
    2.即时显示势必花费时间,将文本置于缓冲区处理,需要时再显示
      单词的颜色,大小等等
      

  5.   

    在ONPARINT消息里面重绘文字。
    如果考虑文本太长,可以只绘可见部分的文字。不过你要多用点时间了:—)
      

  6.   

    重繪一次吧!!!在OnPaint 處理可能快點
      

  7.   

    晕死,大家帮我参考一下这段代码,和关键字高亮原理是不是一样的?
    uses RichEdit
    .....
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      SendMessage(RichEdit1.Handle, EM_SETEVENTMASK, 0, ENM_LINK);
      SendMessage(RichEdit1.Handle, EM_AUTOURLDETECT, Integer(True), 0);
      RichEdit1.Text :='http://www.yahoo.com';
    end;