啥不说,先说现象。我是两个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;
代码如下: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;
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下也是可以的了