Registriert seit: 31. Aug 2005
1.622 Beiträge
FreePascal / Lazarus
|
Re: Liste mit TRects - Speicherleck?
17. Nov 2006, 22:17
Danke für die Hinweise, das mit dem "i" ist mir schon aufgefallen...
Delphi-Quellcode:
{TRectList}
procedure TRectList.Add(ARect: TRect);
var ar:PRect;
begin
new(ar);
ar^ := ARect;
inherited Add(ar);
end;
procedure TRectList.Clear;
begin
while Count > 0 do
begin
FreeMem(inherited Items[0]);
Delete(0);
end;
end;
function TRectList.GetItem(AIndex:integer):TRect;
begin
result := PRect(inherited Items[AIndex])^;
end;
procedure TRectList.SetItem(AIndex:integer;AItem:TRect);
begin
PRect(inherited Items[AIndex])^ := AItem;
end;
Ich arbeite so selten mit Pointern und Co, da bin ich mir nie so richtig sicher...
@SirThornberry
Was ist an deiner Clear Methode besser? Damit wird die Liste doch sogar zweimal durchlaufen...
Danke,
igel457
Andreas "Sollen sich auch alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen, und nicht mehr davon geistig erfasst haben als die Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst." - Albert Einstein
|