奇怪,是有问题。。
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;