解决TRichView_v1911控件出现乱码的方法:
TRichView_v1911是很不错的副文本编辑控件,但是它对中文的支持很差,其中如果文件保存为RTF格式的文档后,再读取时,换行的时候就很可能出现乱码,从Word文档中拷贝过来的文档也会出现乱码。本人经过大量的摸索,发现控件对RVF格式支持的很不错,只要设置TRichViewEdit对应的style 属性的Unicode=true就支持中文。要解决通过剪贴板拷贝过来的Word文档不出现乱码,我才用了下面的的方式实现:
窗体上放置两个TRichViewEdit 控件rve和rve2,两个TRVStyle控件rvs和rvs2,其中设置如下属性:
rve的style为rvs,
rve2的style为rvs2
rve2的visible属性为false
现在我要完成的功能是将从word文档中复制的文档拷贝到rve中而不出现乱码,方法如下:
procedure TF_TextEditor.actPasteExecute(Sender: TObject);
var
i:Integer;
begin
rve2.Clear;
rve2.Paste;
rve2.Format;
for i:=0 to rvs2.TextStyles.Count-1 do
begin
rvs2.TextStyles[i].Standard := True;
rvs2.TextStyles[i].Charset:=GB2312_CHARSET;
rvs2.TextStyles[i].Unicode:=True;
end;
rve2.SelectAll ;
rve2.CopyRVF;
rve.PasteRVF;
for i:=0 to rvs.TextStyles.Count-1 do
begin
rvs.TextStyles[i].Standard := True;
rvs.TextStyles[i].Charset:=GB2312_CHARSET;
rvs.TextStyles[i].Unicode:=True;
end;
end;
此段程序可以放置在一个按钮事件中进行处理。
程序其实很简单,就是先将复制的内容放到rve2中(过渡),在rve2种将其对应的rvs2的每个的每个TextStyles的unicode属性设置为true。然后选中rve2中的内容,并以RVF的格式复制。最后把复制的RVF格式的内容粘贴到rve中即可,同时设定rve对应得rvs的每个TextStyless的unicode属性设置为true。 这时你会发现rve中的内容在换行时就不是乱码了。这就是曲线救国哈。
TRichView_v1911是很不错的副文本编辑控件,但是它对中文的支持很差,其中如果文件保存为RTF格式的文档后,再读取时,换行的时候就很可能出现乱码,从Word文档中拷贝过来的文档也会出现乱码。本人经过大量的摸索,发现控件对RVF格式支持的很不错,只要设置TRichViewEdit对应的style 属性的Unicode=true就支持中文。要解决通过剪贴板拷贝过来的Word文档不出现乱码,我才用了下面的的方式实现:
窗体上放置两个TRichViewEdit 控件rve和rve2,两个TRVStyle控件rvs和rvs2,其中设置如下属性:
rve的style为rvs,
rve2的style为rvs2
rve2的visible属性为false
现在我要完成的功能是将从word文档中复制的文档拷贝到rve中而不出现乱码,方法如下:
procedure TF_TextEditor.actPasteExecute(Sender: TObject);
var
i:Integer;
begin
rve2.Clear;
rve2.Paste;
rve2.Format;
for i:=0 to rvs2.TextStyles.Count-1 do
begin
rvs2.TextStyles[i].Standard := True;
rvs2.TextStyles[i].Charset:=GB2312_CHARSET;
rvs2.TextStyles[i].Unicode:=True;
end;
rve2.SelectAll ;
rve2.CopyRVF;
rve.PasteRVF;
for i:=0 to rvs.TextStyles.Count-1 do
begin
rvs.TextStyles[i].Standard := True;
rvs.TextStyles[i].Charset:=GB2312_CHARSET;
rvs.TextStyles[i].Unicode:=True;
end;
end;
此段程序可以放置在一个按钮事件中进行处理。
程序其实很简单,就是先将复制的内容放到rve2中(过渡),在rve2种将其对应的rvs2的每个的每个TextStyles的unicode属性设置为true。然后选中rve2中的内容,并以RVF的格式复制。最后把复制的RVF格式的内容粘贴到rve中即可,同时设定rve对应得rvs的每个TextStyless的unicode属性设置为true。 这时你会发现rve中的内容在换行时就不是乱码了。这就是曲线救国哈。