Einzelnen Beitrag anzeigen

HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
969 Beiträge
 
Delphi 6 Professional
 
#98

AW: Elemente aus TStringList in Laufzeit entfernen

  Alt 25. Nov 2018, 17:12
Hmm..

Was für ein Kuddelmuddel!

Letzter Versuch meiner seits...

Zitat:
Delphi-Quellcode:
type
  TVocabulary = record
    German : TStringList;
    English : TStringList;
    Repetitions : Integer;
  end;
Bei 'Datenverarbeitung' mit mehren Datensätzen (ob dass nun 2 Wörter hier sind, oder ganze Datensätze mit diversen Feldern) gibt es 'immer' nur 'eine' Liste, welche eine beliebige Anzahl von Datensätzen enthält!

Wenn hier im Thread von Records gesprochen wurde, dann sind diese 'Records' jeweis 'ein' Datensatz in der Liste.
Somit
Delphi-Quellcode:
  TVocabulary = record
    German : String;
    English : String;
    Repetitions : Integer;
  end;
Dies geht übrigens auch als Classe (Object):

Delphi-Quellcode:
  TVocabulary = class
    German : String;
    English : String;
    Repetitions : Integer;
  end;
Egal ob ObjectList oder StringList, dies sind 'Listen' welche Datensätze (Objecte) enthalten.
Alternativ kannst Du auch ein
 TVocabularyList = Array of TVocabulary verwenden.
Jedoch ist das Löschen von einem Datensatz in diesem Array etwas aufwändiger als bei einer ObjectList.
Denn dann musst Du die verbleibenden Einträge in deinem Array in ein neues, verkleinertes umkopieren und nur den zu löschenden weglassen..

Ich hatte in meinem Beispiel TObjectList verwendet mit Objecten, statt Records, da da die Bearbeitung (löschen) einfach geht.
Hier kümmert sich die TObjectList selber um das Händling..
In meiner Unit habe ich nur die TObjectList leicht geändert/erweitert, um einfacher auf die Objecte zugreifen und hinzufügen zu können.

Ich werde Dir hier nun kein Beispielprogramm mit Arrays vorkauen...
  Mit Zitat antworten Zitat