Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - DateTimePicker - Regionale Einstellungen verändern


crowley - Fr 01.05.09 11:36
Titel: DateTimePicker - Regionale Einstellungen verändern
Servus und Hallo,

Ich habe folgendes Problem: Unsere Anwendung soll in verschiedenen Ländern auf verschiedenen Windows- Sprachversionen laufen. Die Sprache unserer Anwendung kann sich durchaus von der Sprache des Windows unterscheiden (z.B. Anwendung auf Ungarisch, Windows auf Deutsch, ...)

Allgemein funktioniert das auch sehr gut - das einzige Manko ist der DateTimePicker, der immer die Sprache anzeigt, die für den Anwender als regionale Einstellung vorgesehen ist. Dementsprechend kann es zu dem Konstrukt kommen: Englisches Windows, deutsche regionale Einstellung, Anwendung auf Französisch. Dann ist die komplette Anwendung Französisch, aber im DateTimePicker stehen "deutsche" Tages-/Monatsnamen etc.pp.

Mein erster Ansatz war nun, die regionalen Einstellungen für die Anwendung abhängig von der gewählten Sprache mit SetThreadLocale umzusetzen. Dies blieb leider - in punkto DateTimePicker - ohne Erfolg. Ein wenig Recherche zeigte, dass für Anwendungen bei einer Änderung der regionalen Einstellungen ZWEI Werte angepasst werden müssen/können:

Zum einen der Wert der mit SetThreadLocal geändert werden kann ("System Regional Settings") und zum anderen die regionalen Einstellungen für das Benutzerinterface (dafür habe ich bisher keine API Funktion finden können, wäre aber wohl dann sowas wie SetThreadUILocale).

Für .NET habe ich eine Lösung gefunden, aber ich kann diese nicht in "Delphi" ummünzen... hat da jemand von Euch eine Idee?


C#-Quelltext
1:
2:
  Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture("de");
  System.Threading.Thread.CurrentThread.CurrentUICulture = System.Threading.Thread.CurrentThread.CurrentCulture;


Danke schon einmal im Voraus!

Moderiert von user profile iconChristian S.: Delphi- durch C#-Tags ersetzt