菜鸟刚学delphi,正在看别人的代码,请问这句话是怎么回事???(50分)

  • 主题发起人 主题发起人 wanglonga
  • 开始时间 开始时间
W

wanglonga

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TForm1.Button1Click(Sender: TObject);
var
BmpStream:TMemoryStream;
Buf:array[0..99] of char;
i:integer;

begin
BmpStream:=TMemoryStream.Create;
image1.Picture.Bitmap.SaveToStream(BmpStream);
BmpStream.Position:=0;
for i:=0 to 100 do
begin
BmpStream.ReadBuffer(Buf,100);
showmessage(buf);
end;
end;
为什么每次showmessage出来的buf都不同,这个buf里的内容是每次都累加的?还是每次显示的是往下移动100的?我感觉不象是累加的!也就是说BmpStream.ReadBuffer(Buf,100);
是每循环一次往buf里加100还是buf清空以前的,加入这回的100????
菜鸟刚学啊,请您多批评啊???!!!
 
BmpStream.ReadBuffer(Buf,100);
读完后会向下移100字节,你每次读的内存不一样,当然内容不会一样。
 
來晚了,同意TYZhang.
 
循环代码相当于
for i:=0 to 100 do
begin
BmpStream.Position:=I*100;
BmpStream.ReadBuffer(Buf,100);
showmessage(buf);
end;
每个循环BmpStream指向向下100位开始,Buf的读取是覆盖原来的100读取新的100位数据。
 
加上一句Reset就OK
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
855
import
I
I
回复
0
查看
695
import
I
后退
顶部