在richedit中使用流好象会把中文的“转成英文的"
在一个richedit1中输入中文的“,然后使用留Richedit1.line.savetostream(st)中,同时加栽到另一个richedit2中,richedit2.line.loadfromstream(st),为什么内容会不一样呢,中文的“转成英文的",请问有什么方法避免么
在一个richedit1中输入中文的“,然后使用留Richedit1.line.savetostream(st)中,同时加栽到另一个richedit2中,richedit2.line.loadfromstream(st),为什么内容会不一样呢,中文的“转成英文的",请问有什么方法避免么
解决方案 »
- 一个内存映像问题
- 怎样获取局域网中的所有电脑的IP,和计算机名?
- 哪里有做安装程序的工具软件下载
- 關于2000和98下的字体顯示問題請教?
- 碰到一个有关windows操作系统的奇怪问题,有经验的请进来一看。
- 关于更改access表名的问题
- 超难疑问:类似QQ的Items判断问题,请朋友都来帮帮忙。在线等待。谢谢大家 :)
- 女朋友昨晚要跟我分手,因为我对她不够好,经过昨晚我才知道,她对我有多重要,所以我不想放弃,兄弟们支持一下我,我不知道我待会会不会
- 建议组成delphi同盟!
- Delphi提取Access数据库内容
- [求助]FRAME窗口如何控制主窗口上的组件.
- 请问,有什么非数据感知的列表控件,能有ehlib那样的功能吗?
1.RichEdit1.SaveToStream(st)
2.St.Posistion := 0;
3.RichEdit1.LoadFromStream(St)
文字内容不会改变的。这两个方法都是属于TStrings类的,所以RichEdit和Memo是一样的。楼主再检查一下!
RichEdit1.Text := '“123”';
try
ms := TMemoryStream.Create;
RichEdit1.Lines.SaveToStream(ms);
ms.Position := 0;
RichEdit2.Lines.LoadFromStream(ms);
finally
ms.Free;
end;
结果却是richedit2.text='"123"';
同时如果在richedit1中,Ctrl+C 标点“,再Ctrl+V时结果也是",
请zhangcheng125(老狼) 可以测试一下
呵呵,
如果标点符号的话,那么请将RichEdit的plainText属性设为True.
我就是需要使用流方式的,否则RichEdit2.Text := RichEdit1.Text就可以了
有没有什么好的建议呢?用rxRichEdit是可以的,但程序里面就是只能使用RichEdit,
1、问题出在RichEd32.dll和RichEd20.dll身上.
2、修改Comctrls.pas,重新编译,将生成的ComCtrls.dcu拷贝到...\Lib\和...\Lib\Debug下覆盖原来的。具体修改点如下:
A、修改TCustomRichEdit.CreateParams过程
将RichEditModuleName = 'RICHED32.DLL'改为RichEditModuleName = 'RICHED20.DLL'
CreateSubClass(Params, 'RICHEDIT')改为CreateSubClass(Params, RICHEDIT_CLASSA)或
CreateSubClass(Params, RICHEDIT_CLASSW)
RICHEDIT_CLASSA: ANSI;
RICHEDIT_CLASSW: UniCode;
B、修改TRichEditStrings.Insert过程
将if RichEdit.SelStart <> (Selection.cpMax + Length(Str)) then
raise EOutOfResources.Create(sRichEditInsertError); 屏蔽掉{}保存---》编译---》拷贝DCU---》收工
这样修改完,你的问题是解决了,至于还有没有产生其它新的问题就没有工夫测试了.
只有改源码么,有没有更好的方法呢