Einzelnen Beitrag anzeigen

Benutzerbild von peschai
peschai

Registriert seit: 15. Feb 2004
Ort: Göppingen
270 Beiträge
 
Delphi XE5 Professional
 
#1

Delphi Windows7 RegionalSettings

  Alt 2. Dez 2010, 11:11
Für interessiert Leute...

Die Initialisierung von Delphiprogrammen mit RegionalSettings erfolgt unter Windows7 ...

SysUtils: GetFormatSetting mit z.b. GetLocaleChar mit GetThreadLocale
Einige Programme könnten mit englischen RegionalenEinstellungen arbeiten, obwohl via Systemsteuerung alles OK (z.b auf Deustch gestellt) ist.
Datumsformate oder Gleitkommazahlen könnten damit evt. falsch interpretiert werden...was zu geringen aber auch gravierende Auswirkungen führen könnte.
(Interessanterweise tritt das Problem z.b. in Excel2010 nicht auf.)

Das Problem ist ein falscher Registryeintrag. Vermutlich tritt dies bei einer Windows 7 Multi-Language Version auf, die dann bei der Installation auf Deutsch gesetzt wurde. Bei einer rein deutschen Version tritt dieses Problem wahrscheinlich nicht auf. Nach Änderung der Registry sollte der Rechner durchge´startet werden (evt. reicht User neu anzumelden).

Natürlich hier auch der Hinweis, daß unsachgemäße Änderung an der Registry den Computer lahmlegen könnten, also vorher ein Backup machen ...)

Bei deutscher Sprache "de-DE" darf die WindowsAPI Funktion "GetThreadLocale" nicht 0x0409 zurückgeben sondern muss 0x0407 zurückgeben. 0x0409 bedeuted "en_US" und es zeigt sich dass dies nicht zu den anderen Einstellungen inder Registry passt.[HKEY_CURRENT_USER\Control Panel\International]
Falsch:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Control Panel\International]
"Locale"="00000409"
"LocaleName"="de-DE"
Richtig:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Control Panel\International]
"Locale"="00000407"
"LocaleName"="de-DE"
..Oder beri anderen Sprachen sollte das paarweise zusammenpassen, hier gezeigt am Beispiel "en-US"
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Control Panel\International]
"Locale"="00000409"
"LocaleName"="en-US"
Peter Schaible
  Mit Zitat antworten Zitat