Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#3

AW: Obejekt aus Array löschen

  Alt 12. Jan 2012, 09:41
Destroy besser nicht direkt aufrufen. (steht übrigens auch in der OH)

Wenn du auf NIL prüfen willst, dann mußt du das natürlich auch setzen.
Delphi-Quellcode:
procedure loeschen;
begin
  blocks[1,2].Free;
  blocks[1,2] := nil;
end;

procedure istVorhanden;
begin
  if not Assigned(blocks[1,2]) then // sowas ist auch möglich
     machWas;
end;
Oder als eine gemeinsame Funktion:
Delphi-Quellcode:
procedure loeschen;
begin
  FreeAndNil(blocks[1,2]);
end;
FreeAndNil setzt die Variable "sicher" auf NIL, denn eigentlich müßte sie NilAndFree heißen.
Dort wird erst die Variable auf NIL gesetzt und erst dann .Free aufgerufen.
Selbst Wenn es im Free knallt (Exception), dann ist die Variable dennoch NIL.


[edit] Oh, eine RedBox ( die lebt doch noch? ).
Egal, diemal ignorier ich dich einfach
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat