Autor Beitrag
Uwe.F.
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 52

W7
D7 Ent. w/o NET
BeitragVerfasst: Di 17.07.07 19:04 
Hi Kollegen!

Habe ein komisches Problem: wenn die Jungz (die Anwender) in der "Region- und Spracheinstellung" über "Anpassen" das Dezimaltrennzeichen umstellen (z.B. von "," auf "."), gehen einige Komponenten nicht mehr (z.B. PBNumEdit).
Wenn dagegen alles auf Englisch steht (also Englisch in Verbindung mit "." als Dezimaltrennzeichen), geht alles. Nur der Mischbetrieb geht halt nicht :(

Hat jemand eine Idee, wie ich eine derartige Manipulation feststellen kann?

Beste Grüße,
Uwe
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Di 17.07.07 19:14 
Setzte die Konstanten (DecimalSeparator, ThousandSeparator) am Programmstart oder verwende die überladenen Version der Konvertierungsroutinen mit der Übergabe des Formats.

_________________
Markus Kinzler.
Uwe.F. Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 52

W7
D7 Ent. w/o NET
BeitragVerfasst: Di 17.07.07 19:43 
user profile iconmkinzler hat folgendes geschrieben:
Setzte die Konstanten (DecimalSeparator, ThousandSeparator) am Programmstart

Habe ich schon probiert (DecimalSeparator:='.'), ergibt aber den gleichen Effekt wie die Einstellung über "Region- und Spracheinstellung".
Was ich machen könnte wäre ein Zurückstellen der Einstellung mittels DecimalSeparator. Aber woher weiss ich, ob ich Punkt oder Komma einstellen muss?
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Di 17.07.07 19:46 
Mit der Konstante kannst du nicht die Systemeinstellungen ändern. Sie wird aber von den Routinen von Delphi verwendet.

_________________
Markus Kinzler.
Uwe.F. Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 52

W7
D7 Ent. w/o NET
BeitragVerfasst: Di 17.07.07 19:54 
Würde mir ja reichen (dann geht meine Applikation ja einschließlich der "zickigen" PBNumEdit-Komponente).
Ich muss nur feststellen, dass Ländereinstellung und Dezimaltrennzeichen nicht zueinander passen ...
Und da fehlt mir noch ein guter Tip ;)
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Di 17.07.07 19:57 
Bei Start des Delphiprogammes werden die Ländereinstellungen des Systems normalerweise in diese Konstanten kopiert. Wäre ja komisch, wenn diese Komponente diese selber noch einmal aus dem System lesen würde.

_________________
Markus Kinzler.
Lannes
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2352
Erhaltene Danke: 4

Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
BeitragVerfasst: Di 17.07.07 20:05 
Hallo,

kleiner Hinweis:
Sie wird nicht nur beim Start der Delphi-Anwendung gesetzt, sondern auch zur Laufzeit, vorrausgesetzt es ist keine Konsolenanwendung.

Ein Auszug aus der Delphi-Hilfe:
Die Anfangswerte der Variablen werden aus der Registrierdatenbank mit der Win32-API-Funktion GetLocaleInfo API ausgelesen. Delphi VCL-Anwendungen (dies sind keine Konsolenanwendungen) aktualisieren diese Formatvariablen automatisch als Reaktion auf WM_WININICHANGE-Botschaften. Über Application.UpdateFormatSettings kann eine Änderung der Systemeinstellungen erlaubt oder verhindert werden. Die Voreinstellung für UpdateFormatSettings lautet True. Wenn diese Eigenschaft auf False gesetzt wird, können die Systemeinstellungen nicht geändert werden.

_________________
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
Uwe.F. Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 52

W7
D7 Ent. w/o NET
BeitragVerfasst: Mi 18.07.07 16:56 
Titel: Gelöst :)
So - ich hab's hin bekommen.

Ich hatte erste nur den DecimalSeparator auf "." umgestellt, nicht jedoch den ThousandSeparator (der hatte mich nicht interessiert, weil ich mit dem nicht arbeite). Und genau der stand dann auch auf "." - damit gab's Probleme.
Nachdem ich beide umgestellt hatte (also ThousandSeparator auf ",") ging alles.

@Markus (mkinzler): deinen ersten Beitrag hätte ich genauer lesen sollen :D

Beste Grüße und vielen Dank für die Tips!
Uwe