定义了一个函数,从流中读取数据,这个流中就是一个图片,将流中的图片读取出来显示
函数如下Function BmpLoad(ImgBmp:TImage;SourceFile:String):Boolean;
var
  Source:TFileStream;
  MyFileSize:integer;
begin
  Source:=TFileStream.Create(SourceFile,fmOpenRead or fmShareDenyNone);
  try
    try
      Source.Seek(sizeof(MyFileSize),soFromEnd);
      Source.ReadBuffer(MyFileSize,sizeof(MyFileSize));//这里报错是怎么回事? 
      Source.Seek(MyFileSize,soFromEnd);  
      ImgBmp.Picture.Bitmap.LoadFromStream(Source);
    finally
      Source.Free;
    end;
  except
    Result:=False;
    Exit;
  end;
    Result:=True;
end;

解决方案 »

  1.   

    ReadBuffer第1个参数是Buffer类型,MyFileSize是吗???看你这段代码要实现的结果,这3句都是多余的
    Source.Seek(sizeof(MyFileSize),soFromEnd);
    Source.ReadBuffer(MyFileSize,sizeof(MyFileSize));//这里报错是怎么回事? 
    Source.Seek(MyFileSize,soFromEnd);  
      

  2.   

    对流的操作不太懂,这是看别人写的代码里面的如果要实现把多张图片写入一个流中,如何实现?
    从这个含有多个图片的流中将图片一个个的读出来显示又如何实现??kaikai_kk
    (KAIKAI(开开一心))   能不能教我一下?写段简单的写入流和读取流的代码给我看看可以吗?
      

  3.   

    MyFileSize,sizeof(MyFileSize)
    这是干嘛,MyFileSize是int变量,你读取的sizeof(MyFileSize)可不是int的长度啊,你应该是读取到缓存中,比如char数组或byte数组中