![]() |
Objekt aus dyn. Array löschen
Hallo!
Angenommen, ich habe ein dynamisches Array von Instanzen einer eigenen Klasse mit 10 Objekten drin. Wie lösche ich beispielsweise das 4. Objekt (array[3])? Per for-Schleife wird das 5. Objekt zum 4., das 6 zum 5, usw. Dann wird das Array auf 9 verkürzt (setLength(array,9)). Reicht das schon? Oder muss ich irgend wann (wenn dann doch sicherlich vor der Schleife) noch den Destructor bemühen. |
Re: Objekt aus dyn. Array löschen
Vorher musst du mit Free das Objekt freigeben.
|
Re: Objekt aus dyn. Array löschen
wenn Du Deine theoretischen Überlegungen nicht gerade für den Informatik Unterricht brauchst, würde ich Dir TList ans Herz legen :-)
|
Re: Objekt aus dyn. Array löschen
Für deine Aufgabe ist TObjectList geeigneter, da diese einiges an Verwaltungsaufwand abnimmt (Automatische freigabe beim Löschen, Alle Einträge könnnen jederzeit gelöscht werden).
Aber sonst reicht dein Ablauf schon. |
Re: Objekt aus dyn. Array löschen
Zitat:
wieso willst du so oft was verschieben? kopier einfach das letzte item deines arrays, an die stelle des zu löschenden items und setze dann die laenge -1. sagen wir mal du möchtest das vierte element(=3) löschen....
Delphi-Quellcode:
MyArray[3] = MyArray[High(MyArray)];
SetLength(MyArray, Length(MyArray)-1); |
Re: Objekt aus dyn. Array löschen
Um allen das Leben zu erleicht habe ich folgenden Beitrag für die Codelib vorgeschlagen:
![]() |
Re: Objekt aus dyn. Array löschen
der code sieht ein bisschen übertrieben aus :-D
|
Re: Objekt aus dyn. Array löschen
Zitat:
|
Re: Objekt aus dyn. Array löschen
respekt, sieht nicht schlecht aus, haste selber geschrieben? (bringste mir asm bei? :???: )
|
Re: Objekt aus dyn. Array löschen
Zitat:
[edit]Danke[/edit] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:15 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