Das "Warum" ignorieren ... hab ich oben editiert/geändert.
Aber bei dem +1 weist du ja immer das zweite Array-Item deinem Result zu.
Tipp: mit dem Debugger mal ansehen, was in der Result-Variable nach deiner Schleife drin steht.
Schön ist es auch, wenn man
Gleiches Zusammengehöriges zusammenfasst.
So kann z.B. der Record selbst seine eigene Sortierfunktion bereitstellen.
Delphi-Quellcode:
type
TCode = record
Wort: string;
Bezeichnung: string;
class function Compare(const Left, Right: TCode): Integer; static;
end;
// das Class+Static ist dafür, damit es kein implizites SELF gibt (als ersten unsichtbaren Parameter), also genauso, als wäre die Methode nicht in einer Klasse/Record.
class function TCode.Compare(const Left, Right: TCode): Integer;
begin
Result := string.Compare(Left.Wort, Right.Wort, [coDigitAsNumbers]);
end;
TArray.Sort<TCode>(Self.TAdresse, TDelegatedComparer<TCode>.Create(TCode.Compare));
PS: Der Name mit T ist schon ein bissl verwirrend ... klingt irgendwie nicht nach Feld/Variable, sondern mehr nach Typ/Klasse.