AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Regions- und Spracheinstellungen ändern?
Thema durchsuchen
Ansicht
Themen-Optionen

Regions- und Spracheinstellungen ändern?

Ein Thema von messie · begonnen am 18. Apr 2008 · letzter Beitrag vom 21. Apr 2008
Antwort Antwort
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#1

Regions- und Spracheinstellungen ändern?

  Alt 18. Apr 2008, 16:28
Moin,

ich lese Dateien ein, bei denen ein Datum als String drinsteht. Je nach Rechnereinstellungen sind die ja unterschiedlich. Kann ich zur Laufzeit die globalen Regionsoptionen umstellen, z.B. von Englisch(USA) auf Deutsch(Deutschland) etc.?

Danke, Messie
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Regions- und Spracheinstellungen ändern?

  Alt 18. Apr 2008, 17:11
Hallo,

die Systemeinstellungen würde ich nicht verändern. Delphi bietet dir die Möglichkeit solche Einstellungen im Programm vorzuhalten und ganz individuell einzusetzen.

Delphi-Quellcode:
var
  fs: TFormatSettings;
begin
  GetLocaleFormatSettings($0409, fs); // english settings
  ShowMessage(DateToStr(StrToDate('12/24/2007', fs)));
end;
Getippt und nicht getestet.

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von Daniel Schuhmann
Daniel Schuhmann

Registriert seit: 16. Jul 2005
Ort: München
391 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Regions- und Spracheinstellungen ändern?

  Alt 18. Apr 2008, 18:58
Zitat von marabu:
die Systemeinstellungen würde ich nicht verändern.
Seh ich genauso. Aber zufällig brauche auch ich genau diese Funktion für ein anderes Programm (BVE, Japanischer Zugsimulator), das sich anders nicht zum Betrieb bewegen lässt.

Wenn Du also weißt wie es geht: Mich würd's auch interessieren.

Gruß,
Daniel
Daniel Schuhmann
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Regions- und Spracheinstellungen ändern?

  Alt 18. Apr 2008, 19:28
Hallo Daniel,

Windows bietet meines Wissens keine dokumentierte API Funktion zum Ändern der Default System Locale Settings per LCID in einem Rutsch, ohne dass ein Neustart nötig wird. Du kannst bestenfalls alle Einstellungen einzeln (SetLocaleInfo) ändern. Ich habe allerdings schon gelegentlich bewiesen, dass ich mich irren kann.

Vielleicht hilft dir bei deinem speziellen Problem das AppLocale Utility von Microsoft?

Freundliche Grüße
  Mit Zitat antworten Zitat
Benutzerbild von nicodex
nicodex

Registriert seit: 2. Jan 2008
Ort: Darmstadt
286 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Regions- und Spracheinstellungen ändern?

  Alt 18. Apr 2008, 19:29
Zitat von Daniel Schuhmann:
Aber zufällig brauche auch ich genau diese Funktion für ein anderes Programm (BVE, Japanischer Zugsimulator), das sich anders nicht zum Betrieb bewegen lässt.
Für solche Problemfälle gibt es AppLocale.

Das Setup ist etwas älter und funktioniert mit aktiviertem UAC nicht richtig. In diesem Fall eine Admin-Konsole öffnen und die MSI von dort aus ausführen.
  Mit Zitat antworten Zitat
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#6

Re: Regions- und Spracheinstellungen ändern?

  Alt 21. Apr 2008, 10:29
Zitat von marabu:
Delphi-Quellcode:
var
  fs: TFormatSettings;
begin
  GetLocaleFormatSettings($0409, fs); // english settings
  ShowMessage(DateToStr(StrToDate('12/24/2007', fs)));
end;
Im Prinzip wäre das schon genau richtig, dann brauche ich ja nur noch die aktuelle Codepage zu holen.
Aber: Warum gibt es die Routine GetLocaleFormatSettings bei mir nicht? Delphi zu alt?

Grüße, Messie
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: Regions- und Spracheinstellungen ändern?

  Alt 21. Apr 2008, 12:58
Hallo,

Zitat von messie:
... Delphi zu alt? ...
ich befürchte: Ja.

Du hast doch Zugang zum Quelltext der Unit SysUtils. Vielleicht kannst du dir etwas ähnliches aus GetFormatSettings() schnitzen. Du hast dann zwar immer noch nicht die thread-sicheren Überladungen der Konvertierungsfunktionen (DateToStr, ...), aber könntest nach Belieben die gewünschten Ländereinstellungen wechseln.

Freundliche Grüße
  Mit Zitat antworten Zitat
Antwort Antwort


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:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz