发现一只Delphi 6的大臭虫!(0分)

  • 主题发起人 主题发起人 一个过客
  • 开始时间 开始时间

一个过客

Unregistered / Unconfirmed
GUEST, unregistred user!
TFileStream的position属性无效,不管你read多少东西,position始终是0

不过幸好read结果是正确的。所以如果你的程序依赖Position这个属性的话
就需要检查一下了。
 
奇怪,是有问题。。
POSITON与SIZE始终为0,但是并不影响判断,好像实际值还是对的似的
下面的程序,跟踪每一次循环,两个值都是0,但是全部循环可以完成,而且数据取出来都
是对的:
while F.Position <f.Size do
begin
F.Read(Buf^,Sizeof(SiteFileType));
TempSite:=TSite.Create(Self);
TempSite.Caption:=strpas(Buf^.Caption);
TempSite.Id:=Buf^.Id
TempSite.Left:=Buf^.Left
TempSite.Top:=Buf^.Top;
TempSite.Connects:=Buf^.ConnectInfo;
TempSite.PopupMenu:=SiteMenu;
TempSite.Next:=Site;
Site:=TempSite;
Count:=Count+1;
if TempSite.Left<0 then
Left:=TempSite.Left;
if TempSite.Top<0 then
Top:=TempSite.Top;
if (TempSite.Left+TempSite.Width)>Width then
begin
Width:=TempSite.Left+TempSite.Width;
end;
if (TempSite.Top+TempSite.Height)>Height then
begin
Height:=TempSite.Top+TempSite.Height;
end;
Application.ProcessMessages;
end;
 
呵呵,果然,
每次循环中加入:
showmessage(inttostr(f.Position));
SHOW出来的POSITION都是对的,看来是D6的IDE的问题
 
可能是优化了
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部