![]() |
Delphi-Version: 5
Obejekt aus Array löschen
Hallo,
ich möchte ein Objekt aus einem Array löschen. Scheint aber so, als ob es mit 'destroy' nicht funktioniert. Hier ein Beispiel:
Delphi-Quellcode:
Nun weiß ich nicht, ob ich mit NIL abfragen muss oder ob ich das Objekt irgendwie anders löschen muss.
//Das ist nur ein Beispiel, sieht in meinem Projekt natürlich nicht so aus
var blocks:array[0..19,0..19] of TShape; procedure loeschen; begin blocks[1,2].Destroy; end; procedure istVorhanden; begin if blocks[1,2]=NIL then machWas; end; Danke für die Antwort schon im Voraus mfg. AlexW93 |
AW: Obejekt aus Array löschen
Versuch es mal mit
Delphi-Quellcode:
procedure loeschen;
begin FreeAndNil(blocks[1,2]); end; |
AW: Obejekt aus Array löschen
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. :zwinker:
Delphi-Quellcode:
Oder als eine gemeinsame Funktion:
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;
Delphi-Quellcode:
FreeAndNil setzt die Variable "sicher" auf NIL, denn eigentlich müßte sie NilAndFree heißen.
procedure loeschen;
begin FreeAndNil(blocks[1,2]); end; 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 :angle2: |
AW: Obejekt aus Array löschen
Danke für die schnelle Antwort!
Wenn ich zuhause bin, werd ich das gleich ausprobierten. mfg AlexW |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz