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