Hallo Leute!
folgendes : Habe eine Liste mit folgendem ItemTyp:
Delphi-Quelltext
1: 2: 3: 4:
| TMyListItem = class Nummer : Integer; UeberNummer: Integer; end; |
Die Items in der Liste haben eindeutige Nummern und auch Uebernummern, die nur einmal als Uebernummer
vorkommt und mit hilfe der Uebernummer auf ein anderes Item in der Liste 'zeigt'.
Ist keine Uebernummer angegeben oder sie existiert als Nummer nicht, dann wird diese normal sortiert.
(stellt es euch wie eine Baumstruktur vor, wobei immer nur ein 'Child' in einer Ebene ist)
Nun soll es zb. so sortiert werden: (IT = Item)
('eingerückt' bedeutet, dass es mit der Uebernummer auf das vorherige 'zeigt')
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| IT1 IT2 IT8 IT12 IT3 IT4 IT9 IT13 IT7 IT10 IT14 IT5 IT6 IT7 IT17 |
Ich glaube ich denke zu kompliziert (oder auch nicht

) , zumindest krieg ichs nicht passend.
folgendes reicht leider nicht aus als sortierfunktion ( List.Sort(MySort) ):
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| t1 := TMyListItem (Item1); t2 := TMyListItem (Item2);
if (t1.UeberNummer = t2.Nummer) then result := 1 else if (t2.UeberNummer = t1.Nummer) then result := -1
else if (t1.Nummer < t2.Nummer ) then result := -1 else if (t1.Nummer > t2.Nummer ) then result := 1 else result := 0; |
Bitte kann mir wer weiterhelfen ?
Vielen Dank im Voraus,
Limbo
Moderiert von
raziel: Code- durch Delphi-Tags ersetzt.