我的窗体上有两个RichEdit,其中的一个里面有带有格式(字体等)的文字内容,我想在另一个RichEdit中复制这些内容,请问怎么办?不要用剪贴板,也不要先保存到文件或流再读取的方法,请高手帮忙

解决方案 »

  1.   

    不明白,为什么不能用剪贴板?
    RichEdit1.SelectAll;
    RichEdit1.CopyToClipboard;
    RichEdit2.Clear;
    RichEdit2.PasteFromClipboard;
      

  2.   

    RichEdit2.Lines.Clear;
      RichEdit2.Lines.AddStrings(RichEdit1.Lines);
      

  3.   

    To:sysu(死树) 
    这样做会使原来Clipboard中的内容消失,我觉得从制作应用程序角度讲,如果不是用户自己的要求复制到Clipboard的话,应用程序是不应该随意把自己的内容放到Clipboard的,因为用可能还要用原来Clipboard中的内容;To: wmh_654321(qqq) 
    你的方法只能复制文本,不能复制字体等格式。上述两点我在问题中已经写明白了:)
      

  4.   

    呵呵,那就这样吧,一个一个字符来,不过显示效果没有copy & paste好:
    var i: Integer;
    begin
      RichEdit2.Clear;
      RichEdit2.Lines.Assign(RichEdit1.Lines);
      for i := 0 to Length(RichEdit1.Lines.Text) - 1 do begin
        RichEdit1.SelStart := i;
        RichEdit1.SelLength := 1;
        RichEdit2.SelStart := i;
        RichEdit2.SelLength := 1;
        RichEdit2.SelAttributes.Assign(RichEdit1.SelAttributes);
      end;
    end;
      

  5.   

    To:sysu(死树) 
    我还没试,不过感觉你的方法可行,就是不知道插入图片行不行。
    我使用的是RxRichEdit,想做一个每当文档内容变化就自动保存到磁盘的小程序,这样即使断电内容也不会丢失。但是如果在OnChange中保存文件的话,该控件保存内容后就不支持UnDo功能了。所以想先复制到另一个RxRichEdit中,用新的RxRichEdit进行保存。我试试你的方法,就是不知道如果里面有图形的时候是否可行
      

  6.   

    图片就不行啦,在RxRichEdit里插入图片好象只能用Paste吧?
      

  7.   

    哦,谢谢了,看来我的思路不可行了,我想别的办法吧。不过自己写程序处理undo好麻烦的:(