关于richedit的问题(50分)

  • 主题发起人 主题发起人 plwei
  • 开始时间 开始时间
P

plwei

Unregistered / Unconfirmed
GUEST, unregistred user!
我将richedit的内容保存在一个纪录文件中。但下次读取时,保存前排好的
格式确没有保存住,为什么?我应该怎么办?
richedit1.lines.text:=book1.content;
content为string类型。
 
RichEdit的text中没有包含格式的定义,
需要保存格式的话你必须自己建立一个链表结构,把文字的格式也记录下来,
供下次恢复使用
 
这样不行的。格式没有记下来。
试试看用TStream,把RichEdit写到stream里面去。
 
stream与string是怎样的一种关系?他们是怎样转换的?
 
很遗憾,刚才在TRichEdit里面找了一会儿,怎么没有看到能够Get到选中部分
的格式的Method?
这个TRichEdit好像不好用嘛!
 
不好意思,应该看TTCustomRichEdit的帮助来着,OK, 不错
格式可以取出。
输入到TStream里面?还是要自己记住各处文字的格式来做吧?
 
怪得很!在另一个窗口里面怎么也贴不上,重试了5,6次,还是不能发表意见,:(
另开了一个窗口才行
 
richedit1.lines.savetostream 就可以了. 不行的话savetofile肯定可以啦
stream是一块顺序读写(正常情况)的内存, string也是一块内存, 不过是由系统全权管理的,
对用户透明.
stream有很多种类, 和string最相近的是TStringStream.
 
格式是可以存的.
var temp:TTextAttributes;
...
RichEdit1.SelectAll;
temp:=RichEdit1.SelAttributes;
...
你的文本中如果格式一样很好办,如果你的文本中格式变化多,你就得...!
 
就得用loadfromstream或者loadfromfile加载(很容易, 不是吗?).
顺便说一句, richedit1.lines.text := xxxx是按默认格式设置加到richedit中的.
 
参见delphi自己的demo/richedit.
就是lines.SaveToFile;
以下代码就是她里面的。
procedure TMainForm.PerformFileOpen(const AFileName: string);
begin
Editor.Lines.LoadFromFile(AFileName);
SetFileName(AFileName);
Editor.SetFocus;
Editor.Modified := False;
SetModified(False);
end;

procedure TMainForm.FileSave(Sender: TObject);
begin
if FFileName = 'Untitled' then
FileSaveAs(Sender)
else
begin
Editor.Lines.SaveToFile(FFileName);
Editor.Modified := False;
SetModified(False);
end;
end;
 
见鬼!这个问题也能算问题?
保存:
Book1.Content := RichEdit1.Lines.CommaText;
读取:
RichEdit1.Lines.CommaText := Book1.Content;
绝对带全部格式!
 
barton:
你的办法也只能保存一种格式,无法保存变化多的格式!
 
NO!
能保存一种格式就能保存所有定义的格式!
RichEdit在定义格式时一定要选中某些文字。
我将一个RichEdit的Text存到一个数据库的BLOB字段,结果
你猜怎么着?所有格式完全保存了!
 
是否你将richedit属性的 PlainText 设置为true了,应该为 Flase !
 
我接受答案了。
 
多人接受答案了。
 
后退
顶部