QQ聊天对话框中,放入一个图片和文字,发送时这个图片是以文件传送过去的, 在rzrichedit中是怎么提取来这个图片然后保存到temp文件夹的啊?哪位朋友有这方面的源码?

解决方案 »

  1.   

    我是这样的先把rxrichedit中的内容存进文件流,然后在文件流缓冲区中查找图片信息,然后替换成图片文件名,然后把这个图片存到临时文件夹中,发送这个文件流,再发送到这个图片文件,这样就实现了文字和图片分开发送,但是现在问题就是,我只能替换小图片, 大图片的话,程序就会死掉。
    var
      StreamContent :array[1..99999] of Char;
      StreamContent2 :array[1..99999] of Char;
      Stream        :TMemoryStream;
      Stream2        :TMemoryStream;
    for i:=0 to Length(msginput.Text) do
       begin
      msginput.SelStart:=i;// Length(tempRxRichEdit.Text);;
      msginput.SelLength:=1;  msginput.CopyToClipboard;
     
      if Clipboard.HasFormat(CF_BITMAP) then
         begin
           tempRxRichEdit.Clear;
           tempRxRichEdit.PasteFromClipboard;       Stream2:=TMemoryStream.Create;
           tempRxRichEdit.Lines.SaveToStream(Stream2);
                Stream2.Position:=0;
           stream2.Read(StreamContent2,Stream2.Size);
           Content2:=Copy(StreamContent2,1,Stream2.Size);
           Content2:=copy(Content2,pos('{\pict\',Content2),length(Content2));
           Content2:=copy(Content2,1,length(Content2)-10);       Content:=AnsiReplaceStr(Content,Content2,FacesChar[5]);
           Stream2.Free;
         end;
          Clipboard.Clear;
      end;  
    小图片还行,大图片程序就会死掉。