Einzelnen Beitrag anzeigen

trashcandesign

Registriert seit: 21. Feb 2006
Ort: Mühlhausen
187 Beiträge
 
Delphi XE2 Professional
 
#1

Falsches ShortDateFormat unter Windows 7

  Alt 27. Nov 2009, 15:13
Moin,

wir formatieren unsere Datums-Felder mit dem ShortDateFormat um die Datumsanzeige entsprechend den Windowsländereinstellungen zu formatieren.

Bisher hat das auch wunderbar funktioniert.
Nun habe ich heute ein Windows 7 32Bit aufgesetzt und plötzlich gab mir das ShortDateFormat M/d/yyyy zurück, obwohl in den Ländereinstellungen das Format auf dd.MM.yyyy gesetzt wurde.


Das
GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SSHORTDATE, PAnsiChar(test), 20); hat mir das richtige Ergebnis geliefert, aber

GetLocaleFormatSettings(LOCALE_USER_DEFAULT, Formatsettings); wieder das falsche?!


Soweit ich das verstanden habe hat GetLocaleFormatSettings GetThreadLocale als DefaultLCID gesetzt.
Und die ThreadLocale gab dann wieder das Ami-Format zurück. Warum auch immer.

ich habe dann auf der Seite nachgelesen, dass man mal die Lokalen Ländereinstellungen ändern und wieder zurück setzen soll. Das hat dann auch bei mir funktioniert und unser Programm hat dann wieder das richtige Format ausgegeben.

Das Windows 7 war eine Multi-Language Version, die dann bei der Installation auf Deutsch gesetzt wurde.
Bei einer rein deutschen Version ist dieses Problem nicht aufgetreten.
Wir setzen momentan Delphi 2006 ein.

Nun meine Frage: Hat das Problem schon mal jemand gehabt? Weiß vielleicht jemand, woran das Problem genau liegt und ob das mit der aktuellen Delphi-Version auch noch auftritt?

Und warum gibt IsValidLocale(LOCALE_USER_DEFAULT, LCID_INSTALLED) 0 zurück?
  Mit Zitat antworten Zitat