啥不说,先说现象。我是两个RICHEDIT 保持相同状态,其中关键处是把一个richedit拷贝到另外一个richedit中
代码如下:var
ss: TStringStream;
emptystr: string;
begin
      Editor.PlainText := False;//Editor为第一个richedit
      Richedit1.PlainText := False; //Richedit1为第二个richedit
      ss := TStringStream.Create(emptystr);
      try
         RichEdit1.Lines.SaveToStream(ss);
         Editor.Text := ss.DataString;
      finally
         ss.Free
      end;end;code]以上代码在delphi7下面运行正常,而在delphi2009下面第二个richedit显示的是
{\rtf1\ansi\ansicpg936\deff0\deflang1033\deflangfe2052{\fonttbl{\f0\fswiss\fcharset0 Arial;}{\f1\fnil\fcharset134 Arial;}}
{\colortbl ;\red255\green0\blue0;}
\viewkind4\uc1\pard\cf1\lang2052\f0\fs20 d\f1\par
}我实在是不知道问题出在哪 ,开贴求大家指教。我最后的解决办法说一下,比较笨,就是用LoadFromFile来实现。[code=Delphi(Pascal)]
var
emptystr: string;
begin
      Richedit1.PlainText := false;
      Editor.PlainText := False;
      try
       RichEdit1.Lines.SaveToStream('C:\1.rft');
       Editor.Clear;
       Editor.Lines.LoadFromFile('C:\1.RFT');
      finally
      end;

解决方案 »

  1.   

    这几天又在研究上面的问题,后来终于解决掉了,看代码var
    ss: TStringStream;
    emptystr: string;
    begin
          Editor.PlainText := False;//Editor为第一个richedit
          Richedit1.PlainText := False; //Richedit1为第二个richedit
          ss := TStringStream.Create(emptystr);
          try
             RichEdit1.Lines.SaveToStream(ss);
             ss.Position:=0;
             Editor.Lines.LoadFromStream(ss) 
          finally
             ss.Free
          end;end;delphi2009下也是可以的了