// 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;


 

Zugriffe seit 6.9.2001 auf Delphi-Ecke