Discussion:
TFormatSettings in der Domäne
(zu alt für eine Antwort)
Christian Schmitt
2018-01-08 13:41:55 UTC
Permalink
Hallo Leute,

ich sitze hier wieder an einem Problem, an dem ich nicht mehr weiter weiß. Ich setzte bei einem Programm zu Beginn die FormatSettings auf englisch:

Formatsettings:=TFormatsettings.Create('en-us');

Das funktioniert auch problemlos, alle Wandler-Funktionen (Datetostr etc) funktionieren. Bis ich jetzt den PC in eine Domäne eingehangen habe. Seither scheint sich die FormatSettings-Variable bei der Aktualisierung der Gruppenrichtlinien wieder auf deutsch umzustellen. Das geht natürlich gar nicht :-). Kann ich dieses Verhalten irgendwie abstellen? Lt. Admin sind keine regionsspezifischen Einstellungen in den GPOs definiert. Ich kann natürlich bei einigen Funktionen die TFormatsettings explizit mitgeben, bei einigen (z.B. Val() oder Inifiles.Readfloat() und Co) nicht.

Im Einsatz ist Windows 7 Pro, Delphi XE2, falls Ihr das OS des DCs braucht, muss ich nachhören.

Danke schon mal im Voraus!
Gruß
Christian Schmitt
2018-01-08 15:04:32 UTC
Permalink
Habe ich gerade noch herausgefunden: sobald ich unter Systemsteuerung - Regions & Sprachoptionen die Systemeinstellungen auf "Englisch (USA)" ändere, ist alles paletti!
Peter Below
2018-01-09 07:48:39 UTC
Permalink
Post by Christian Schmitt
Hallo Leute,
ich sitze hier wieder an einem Problem, an dem ich nicht mehr weiter
weiß. Ich setzte bei einem Programm zu Beginn die FormatSettings auf
Formatsettings:=TFormatsettings.Create('en-us');
Das funktioniert auch problemlos, alle Wandler-Funktionen (Datetostr
etc) funktionieren. Bis ich jetzt den PC in eine Domäne eingehangen
habe. Seither scheint sich die FormatSettings-Variable bei der
Aktualisierung der Gruppenrichtlinien wieder auf deutsch umzustellen.
Die Delphi run-time library reagiert auf WM_SETTINGCHANGE (so heißt die
Message, glaube ich) und holt dann alle locale-sepezifischen Settings
neu von Windows.

Wenn man einer anderen locale als der des Systems arbeiten muß
funktioniert es besser, wenn man die overloads der diversen
Wandlerfunktionen verwendet, denen man einen TFormatsettings-Parameter
mitgeben kann. Dann kann man einfach seinen eigenen solchen Record
verwenden und wird damit unabhängig von den globalen Settings, die sich
eventuell während einer Programmsession ändern.

Es gibt da auch noch Application.UpdateFormatSettings; wenn man diese
Property auf False setzt wird die automatische Aktualisierung der
locale-spezifischen Settings ausgeschaltet.
Post by Christian Schmitt
Das geht natürlich gar nicht :-). Kann ich dieses Verhalten irgendwie
abstellen? Lt. Admin sind keine regionsspezifischen Einstellungen in
den GPOs definiert. Ich kann natürlich bei einigen Funktionen die
TFormatsettings explizit mitgeben, bei einigen (z.B. Val() oder
Inifiles.Readfloat() und Co) nicht.
Im Einsatz ist Windows 7 Pro, Delphi XE2, falls Ihr das OS des DCs
braucht, muss ich nachhören.
Danke schon mal im Voraus!
Gruß
--
Peter Below
TeamB
Christian Schmitt
2018-01-15 16:59:30 UTC
Permalink
Post by Peter Below
Wenn man einer anderen locale als der des Systems arbeiten muß
funktioniert es besser, wenn man die overloads der diversen
Wandlerfunktionen verwendet, denen man einen TFormatsettings-Parameter
mitgeben kann. Dann kann man einfach seinen eigenen solchen Record
verwenden und wird damit unabhängig von den globalen Settings, die sich
eventuell während einer Programmsession ändern.
Ja das mache ich auch größten Teils, aber ich setze auch die Funktionen der Unit INIFILES ein und auch den Befehl val(), hier geht das nicht. Okok, ich weiß, ich könnte natürlich auf die Funktionen ausweichen, die es können, man (ich) ist halt faul :-P. Zudem war mir dieses Problem so auch nicht bewußt, da ich noch nie einen Domänen-Rechner im Zusammenhang meiner Programme hatte. Man lernt halt nie aus!
Post by Peter Below
Es gibt da auch noch Application.UpdateFormatSettings; wenn man diese
Property auf False setzt wird die automatische Aktualisierung der
locale-spezifischen Settings ausgeschaltet.
Das klingt nach genau der Funktion, die ich suche. Wenn das klappt, sehr gut, danke schon mal!! Wieder einmal ist auf euren Rat einfach Verlass :-)))

Gruß

Loading...