//
Stringlisten absteigend sortieren. Das funktioniert
// allerdings nicht, wenn die Strings aus Zahlen bestehen,
// da immer lexisch sortiert wird.
// Getestet mit RS 10.4 unter Win11
var
sl: TStringlist;
CapitalIgnore: Boolean = False;
procedure TFormx.FormCreate(Sender: TObject);
begin
sl := TStringlist.Create;
end;
procedure TFormx.FormDestroy(Sender: TObject);
begin
FreeAndNil(sl);
end;
// Text absteigend sortieren
function Sortdownwards(TS: TStrings; S1, S2: Integer): Integer;
begin
case CapitalIgnore of
False:
Result := -CompareStr(TS[S1], TS[S2]);
else
Result := -CompareText(TS[S1], TS[S2]);
end;
end;
// Beispiel
procedure TFormx.Button1Click(Sender: TObject);
var
c: char;
begin
// nur zum Testen ---
for c := 'A' to 'Z' do
sl.add(c);
for c := 'a' to 'z' do
sl.add(c);
// ------------------
CapitalIgnore := True;
sl.CustomSort(@Sortdownwards);
Memo1.Lines.assign(sl);
end;
|