当我在RichEdit中不断读入rtf文件的时候,发现读入文件后,不能完全按照文件原有的字体显示。
比如:读入一个文件,里面有些字是红色的,再读入另外一个文件之后,那个文件的所有字都会变成红色的了!或是字体变大!尤其是在我反复读取文件的时候,字体的变更有点摸不着头脑!
如何解决这个问题?
另外,在修改了一段文字的字体之后,比如说变色了,继续打字,那接下来的字也会变成红色。如果这时我想把接下来输入的默认字体变会原来的黑色,那该怎么做?
word中直接更改了光标所在处的字体就可以了。但是这里面不大好弄。
我原先想的方法是使用RichEdit.DefAttribute,但是用了之后发现一旦赋值了,整个RichEdit中所有字的字体都变了!原来那红色的字也变成黑色了!
请问如何解决?

解决方案 »

  1.   

    你打开delphi->demos->Richedit那个列子看看,
    对你应该有帮助的!
      

  2.   

    建议你研究一下Delphi自带的RichEdit的例子,至少第二个问题应该能找到答案的。
      

  3.   

    你没有仔细看,RichEdit的例子中,你选择一段文字,然后再设置字体,你就会发现,只有选择的字体发生变化,你可以关注一下richedt的select**change事件。
      

  4.   

    这个我也能做到的! RichEdit.SelAttribute 可以做到。但是如果你不选定一段文字,而是直接点击字体改变按钮的话,整个窗口的字都变了。
    如果在word中,这样做的话,应该只是鼠标所在处开始输入的字字体发生改变。各位再帮忙想想!
      

  5.   

    RichEdit.SelAttribute 这个挺好用的。
    如下面的例子:可以控制紧接添加文本的属性
    with RichEdit1.SelAttributes do
      begin
        Color := clRed;
        Height := Height + 5;
      end;
      RichEdit1.Lines.Add('This line of text will be red.');
    with RichEdit1.SelAttributes do
      begin
        Color := clGreen;
        Height := Height + 5;
      end;
      RichEdit1.Lines.Add('This line of text will be green.');