如何将RichEdit中的文字信息包括(颜色字体等)保存起来?保存起来后再如何调用回RichEdit编辑框中?

解决方案 »

  1.   

    如果RICHEDIT一开始是空白的话,可以选择用INI来保存如果不是空白的话,即保存EDIT内容的话,就将内容保存为RTF文件LZ没具体说明
      

  2.   

    保存RichEdit中的文字信息redt1.Lines.SaveToFile();
    調用RichEdit中的文字信息redt1.Lines.LoadFromFile();
      
    redt1.Font.Color
    redt1.Font.Size
    .....
    可以用INI,或者注冊表保存調用
      

  3.   

    直接存成rtf文件吧,带格式保存
      

  4.   

    同意4楼观点
    richedit.lines.savetofile('d:\Tmp.rtf');
    richedit.lines.loadfromfile('d:\tmp.rtf');
      

  5.   

    rtf格式的文件可以用word打开,也可以使用word将编辑好的文件存为rtf格式的文件,然后再使用richedit载入
      

  6.   

    存为rtf文件~~大家已经说得很明白~~
      

  7.   

    rtf要保存到数据库里,比较麻烦
      

  8.   

    rtf的格式是文本的,可以按文本格式直接读入保存到数据库
      

  9.   

    直接保存后lines内容,格式没有办法保存进去
      

  10.   

    按rtf格式保存到文件,再把该文件当成文本文件读回来
      

  11.   

    如果能通过内存流最好,但是不知道怎么让保存时能按rtf而不是文本行保存为内存流
      

  12.   

    如果保存在数据中,可以这样:
    在sqlserver建立一个表a,字段memo,类型为text
    界面上放两个RichEdit,RichEdit1用来写,RichEdit2用来显示procedure TForm1.Button1Click(Sender: TObject);  //写数据
    var
      lStream:TStringStream;
    begin
      lStream := TStringStream.Create(RichEdit1.Text);
      RichEdit1.Lines.SaveToStream(lStream);
      with ADOQuery1  do
      begin
        close;
        sql.clear;
        sql.add('insert into a (memo) values (:memo)');
        Parameters.ParamByName('memo').Value:=lStream.DataString;
        execsql;
        Close;
      end;
    end;
    procedure TForm1.Button2Click(Sender: TObject);  //显示数据
    var
      lStream: TStringStream;
      s : string;
    begin
      RichEdit2.Clear;
      with ADOQuery1 do
      begin
        close;
        sql.clear;
        sql.add('select * from a');
        open;
        s := FieldByName('memo').asstring;
        lStream := TStringStream.Create(s);
        RichEdit2.Lines.LoadFromStream(lStream);
        Close;
      end;
    end;
      

  13.   

    用本地数据库,如Sqlite就是一个很好的办法,
    也可以用反射的方法,把这个设置类反射