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?