AGB  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Delphi Windows7 RegionalSettings

Ein Thema von peschai · begonnen am 2. Dez 2010 · letzter Beitrag vom 2. Dez 2010
Antwort Antwort
Foren-Tage 2017
DIE Konferenz für Delphi-Entwickler mit vielen Vorträgen und ganztägigen Workshops, veranstaltet u.A. von der Delphi-PRAXiS und Embarcadero.
21.-23. September 2017 in Hamburg · Mehr Infos unter forentage.de.
Benutzerbild von peschai
peschai

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

Delphi Windows7 RegionalSettings

  Alt 2. Dez 2010, 10: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
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
33.083 Beiträge
 
Delphi XE3 Professional
 
#2

AW: Delphi Windows7 RegionalSettings

  Alt 2. Dez 2010, 10:18
Dieses Problemchen ist schon eine Weile bekannt.

Statt die Registry zu ändern, würde ich eher eine der bisher erfolgreich praktizierten Methoden empfehlen.

> in der Systemsteuerung die Sprache auf englisch und dann zurück auf deutsch umstellen.
(statt englisch kann auch jede andere Sprache, außer deutsch verwendet werden)

Hierbei werden dann von Windows diese Registry-Werte angepaßt und es sollte dabei nicht so schnell was kaputt gehn.
Und es ist auch kein neustart nötig, da Windows über entsprechende Änderungsmessages alle Anwendungen informiert. (Delphiprogramme reagieren darauf und laden die Spracheinstellungen dann neu in ihre Variablen)


PS: Ich würde einfach mal behaupten, daß dieses Problem darauf zurückgeht, daß irgendein OEM-Vertreiber seine Windowsversion ebenfalls über eine fehlerhafte direkte Veränderung der Registry lokalisiert hat und dabei dann dieses Problem entstand.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu ( 2. Dez 2010 um 10:29 Uhr)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2017 by Daniel R. Wolf