Einzelnen Beitrag anzeigen

Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#1

Zweidimensionale Objektliste sortieren

  Alt 15. Mär 2019, 14:48
Hallo!

Ich habe eine zweidimensionale Objektliste, die (stark vereinfacht) so aussieht:
Delphi-Quellcode:
type
  TZelle = class(TObject)
  public
    ZuSortierendeProperty: string;
  end;
  TSpalte = TObjectList<TZelle>;
  TTabelle = class(TObjectList<TSpalte>)
  public
    procedure Sort(const ASpalte: Word);
  end;
Nun möchte ich eine Spalte sortieren. Die Spalte soll aber dadurch nicht ihre "zeilenweise Bindung" an die anderen Spalten verlieren. Sonst gibts lustiges Datenchaos. Darum kann ich auch nicht einfach TSpalte.Sort(const AComparer: IComparer<T>) verwenden sondern muss eine Ebene höher im TTabelle ansetzen.

Nur wie müsste ich die Sache angehen? Meine noch recht vage Idee geht dahin, einen eigenen Quicksort zu implementieren. Dieser würde dann den Vergleich zweier TZelle.ZuSortierendeProperty nur in einer Spalte machen, das "Plätze tauschen" aber in allen Spalten gleichzeitig. Oder wie würdet ihr das machen?

Viele Grüße
Cody
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat