Eintrag von array of Klasse löschen
Hallo,
folgendes Szenario: Ich habe mir eine Klasse TStrList erstellt, diese stellt eine Tabelle aus Stringwerten dar. In meiner Anwendung benutze ich nun ein array of TStrList. Nun will ich einen Eintrag aus diesem array of TStrList löschen. Das hier,
Delphi-Quellcode:
klappt nicht ganz, weil ich beim nächsten Zugriff auf die verschobenen Elemente einen Zugriffsfehler bekomme. Mir erscheint dieser Zugriffsfehler auch logisch, aber wie stelle ich das richtig an?
var KomListe: array of TStrList;
... for k:= index to length(KomListe)-2 do // schiebt alle Datensätze hinter dem Gelöschten um eins nach vorne KomListe[k]:= KomListe[k+1]; KomListe[length(KomListe)-1].Free; // gibt die letzte Position frei setlength(KomListe,length(KomListe)-1); // verkürzt das array um 1 |
Re: Eintrag von array of Klasse löschen
Warum nutzt Du nicht die TList oder die TObjectList?
Die würden das alles für Dich organisieren. Grüße Klaus |
Re: Eintrag von array of Klasse löschen
Anstatt dem array?
|
Re: Eintrag von array of Klasse löschen
Zitat:
|
Re: Eintrag von array of Klasse löschen
Kannst du mir vielleicht mit einem Beispiel ein bischen auf die Sprünge helfen?
Ich habe mit TList noch nicht gearbeitet.
Delphi-Quellcode:
??
Liste:= TList.Create;
Liste.Add(TStrList.Create); Liste.Items[0].Komissionsname:= 'test'; |
Re: Eintrag von array of Klasse löschen
Zitat:
Delphi-Quellcode:
Du mußt Deine Listenelemente auf Deine Klasse casten, denn TList weiß nicht welches Object sich an dieser
Liste := TList.Create;
Liste.Add(TStrList.Create); TStrList(Liste[0]).Komissionsname:='test'; Position befindet. TList kann verschiedene Objecte gleichzeitig aufnehmen. Noch ein Link mit Beispielen: Einstieg TList Grüße Klaus |
Re: Eintrag von array of Klasse löschen
Und wieso nicht auch gleich TObjectList, wenn es sich schon um Instanzen, sprich Objekte, handelt?
|
Re: Eintrag von array of Klasse löschen
Habs jetzt mit einer TObjectList gemacht.
Danke euch, für die Hilfestellung! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:34 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz