du gibst page ja auch im ersten schleifen durchlauf mit free frei.
danach ist page kein object mehr und ein zugriff darauf gibt eine
zugriffsverletzung.
stell das in etwa so um:
Delphi-Quellcode:
page := TStringList.Create; //oder was page auch is, grad nich geguckt
try
for i:=.....
begin
end;
finally
page.free;
end;