Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#13

Re: Stringgrid inkl. Umlaute richtig sortieren

  Alt 16. Jul 2007, 16:14
Hallo Steven,

ich habe mir dein Projekt angeschaut.

Mein Code-Beispiel war in erster Linie als Reaktion auf die Beiträge #6 und #7 entstanden. Du hattest dort eine Spalte mit Größenangaben und nachfolgendem ' Kb' eingeführt. Jetzt habe ich deinen ganzen Thread gelesen und erkenne ein ganz anderes Problem. Du möchtest nicht die Standardordnung (Ä nach A) für deine Strings, sondern die Telefonbuch-Ordnung (Ä wie AE). Windows unterstützt diese Ordnung grundsätzlich über den Sort Identifier SORT_GERMAN_PHONE_BOOK, den du über SetThreadLocale() für dein Programm wählen kannst.

Ich habe das soeben einmal ausprobiert. Da das Ergebnis nicht beeinflusst wird, vermute ich, dass die Compare-Funktionen in AdvStringGrid diese Einstellung ignorieren. Hier wäre sicher eine Anfrage an den Support von TMS angebracht.

EDIT: Getestet habe ich mit deinem Projekt.

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
  locale: LCID;
begin
  locale := GetThreadLocale;
  SetThreadLocale(locale or SORT_GERMAN_PHONE_BOOK shl 16);
  with AdvStringGrid1 do
    SortByColumn(2);
  SetThreadLocale(locale);
end;
Freundliche Grüße
  Mit Zitat antworten Zitat