如上,谢啦

解决方案 »

  1.   

    function BitmapToRTF(pict: TBitmap): string; 
    var 
      bi,bb,rtf: string; 
      bis,bbs: Cardinal; 
      achar: ShortString; 
      hexpict: string; 
      I: Integer; 
    begin 
      GetDIBSizes(pict.Handle,bis,bbs); 
      SetLength(bi,bis); 
      SetLength(bb,bbs); 
      GetDIB(pict.Handle,pict.Palette,PChar(bi)^,PChar(bb)^); 
      rtf := ''{\rtf1 {\pict\dibitmap ''; 
      SetLength(hexpict,(Length(bb) + Length(bi)) * 2); 
      I := 2; 
      for bis := 1 to Length(bi) do 
      begin 
        achar := Format(''%x'',[Integer(bi[bis])]); 
        if Length(achar) = 1 then 
          achar := ''0'' + achar; 
        hexpict[I-1] := achar[1]; 
        hexpict[I] := achar[2]; 
        Inc(I,2); 
      end; 
      for bbs := 1 to Length(bb) do 
      begin 
        achar := Format(''%x'',[Integer(bb[bbs])]); 
        if Length(achar) = 1 then 
          achar := ''0'' + achar; 
        hexpict[I-1] := achar[1]; 
        hexpict[I] := achar[2]; 
        Inc(I,2); 
      end; 
      rtf := rtf + hexpict + '' }}''; 
      Result := rtf; 
    end;     这个函数返回一段可以被导入到RxRichEdit或RichTextBox选择的RTF流。{假设SS是TStringStream,RE是TRxRichEdit,BMP是一存有图片的TBitmap。} 
    SS := TStringStream.Create(BitmapToRTF(BMP)); 
    RE.PlainText := False; 
    RE.StreamMode := [smSelection]; 
    RE.Lines.LoadFromStream(SS); 
    SS.Free;