Hallo,
also bitte mal der Reihe nach. Vielleicht hab ich ja was falsch verstanden. Dann korrigiert mich bitte. So schrieb es der TE:
Zitat:
Ich möchte nun die Werte in Spalte 2 der Größe nach ordnen, mit den zugehörigen Werten aus Spalte 1 und 3.
Das hab ich so verstanden, dass die Sortierung in dieser Reihenfolge/Priorität erfolgen sollte:
Spalte 2 + Spalte 1 + Spalte 3, also nicht nur nach Spalte 2. Demzufolge kann die Lösung mit TList so nicht funktionieren, weil eben NUR nach Spalte 2 sortiert wird, und Spalte 1 und 3 werden in der Sortierung ignoriert.
Der record könnte dann beispielsweise so aussehen:
Delphi-Quellcode:
type
PMyData = ^TMyData;
TMyData = record
Col1, Col2, Col3 : string;
Cols : string;
end;
...wobei Cols dann Col2+Col1+Col3 wäre und die Sortierung dann...
Delphi-Quellcode:
function CompareMyDataCol2( Item1, Item2 : Pointer ) : Integer;
begin
Result := CompareStr( PMyData( Item1 ).Cols, PMyData( Item2 ).Cols );
end;
....und bei der Ausgabe dann wieder den string zusammensetzen aus Col1+Col2+Col3.