Hmm..
1. Das TFormatSettings.ShortDateFormat' ist das Format eine 'andere' Darstellung gibt es nicht!!!
Das TFormatSettings.ShortDateFormat ist in Deutsch "dd/mm/yyyy". In dem gezeigten Dialog steht aber "TT.MM.JJJJ". Letzteres ist gewünscht - nicht das Format.
Windows geht wohl hin und tauscht im Dialog für 'Region und Sprache' das 'd' gegen 'T' und das 'y' gegen 'Y' um hier die Visualisierung für den deutschen User zu Vereinfachen.
Eine
API von MS habe ich nicht gefunden, somit muss dass wohl manuell gemacht werden.
Bei mir steht übrigens 'dd.MM.yyyy' im ShortDateFormat, was dem deutschen Format mit '.' als DateSeparator entspricht.
(Ich bin davon ausgegangen, das es um das Problem geht, dass in einem deutschen Windows ein englisches 'dd/mm/yyyy' statt des deutschen 'dd.MM.yyyy' als Format kommt. Dass es dem TE um 'T' statt 'd' geht, ist mir (leider) nicht aufgefallen
)
Oder meintest Du es so?
Delphi-Quellcode:
var
FmtSet: TFormatSettings;
begin
GetLocaleFormatSettings(LOCALE_USER_DEFAULT, FmtSet);
ShowMessage(FmtSet.ShortDateFormat);
GetLocaleFormatSettings(LOCALE_SYSTEM_DEFAULT, FmtSet);
ShowMessage(FmtSet.ShortDateFormat);
end.
Das zeigt Dir eventuell bei Englisch Windows mit Deutscher Einstellung zwei verschiedene Setups an?
Ps: Ergebnis bei mir ist: dd.MM.yyyy
Das meinte ich mit dem unterschiedlichen Format von System zu User und dass Delphi hier (wohl nur in älteren Delphis) mit System arbeitet statt User, während Windows in den Regions-Settings die des Users anzeigt...