![]() |
Ländereinstellung ermitteln
Hallo zusammen,
kann mir jemand von Euch vielleicht sagen, wie ich die Ländereinstellung des Betriebssystems ermitteln kann,(de,eng etc...) Danke schon einmal im Voraus Gruß guitarre |
Re: Ländereinstellung ermitteln
Herzlich willkommen in der Delphi-PRAXiS, guitarre.
Dich dürften die WIN32 API Funktionen GetSystemDefaultLCID() bzw. GetUserDefaultLCID() interessieren. Diese Funktionen liefern dir die definierten Konstanten. Wenn du diese Konstanten noch in einen String übersetzen möchtest, dann ist weiterer Aufwand zu treiben. Freundliche Grüße vom marabu |
Re: Ländereinstellung ermitteln
hallo marabu,
Danke ,das gefällt mir schon mal sehr gut ! Gibt es auch eine Funktion, die anstatt einen IntWert einen String liefert ?? Danke schon einmal für den ersten Tipp !! Gruß guitarre |
Re: Ländereinstellung ermitteln
Schau dir dazu bitte mal die Funktion Languages in der Unit SysUtils an.
|
Re: Ländereinstellung ermitteln
Meinst du so was:
Delphi-Quellcode:
////////////////////////////////////////////////////////////////////////////////
// Procedure : GetOSLanguageID // Comment : Returns the language of the OS function GetOSLanguageStr: string; begin SetLength(Result, MAX_PATH); SetLength(Result, VerLanguageName(GetSystemDefaultLangId, @Result[1], length(Result))); end; //////////////////////////////////////////////////////////////////////////////// // Procedure : GetOSLanguageStr // Comment : Returns the language ID-String function GetOSLanguageIDStr: string; var Buffer : array[0..MAX_PATH] of char; len : Integer; begin ZeroMemory(@Buffer, sizeof(Buffer)); len := GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SABBREVLANGNAME, Buffer, sizeof(Buffer)); SetString(result, Buffer, len); end; |
Re: Ländereinstellung ermitteln
@marabu,
@michael, DANKE, genau das meinte ich ! Gruß guitarre |
Re: Ländereinstellung ermitteln
Hallo,
wurde die Unit SysUtils eingebunden, dann hat die Delphi-Anwendung diese Informationen bereits ermittelt. Man muss sie dann nur noch auslesen:
Delphi-Quellcode:
Freundliche Grüße
function GetSysLanguageName: string;
begin with Languages do Result := NameFromLocaleID[SysLocale.DefaultLCID]; end; function GetSysLanguageExt: string; begin with Languages do Result := Ext[IndexOf(SysLocale.DefaultLCID)]; end; |
Re: Ländereinstellung ermitteln
Danke @marabu,@michael,
funktioniert alles einwandfrei. Allerdings habe ich noch ein Problem, gibt es eine Möglichkeit die aktuelle Ländereinstellung anzeigen zu lassen, (z.B.: bei der Umstellung von DEU auf ENG),also nicht die Länderkennung, die defaultmäßig installiert wurde ? Ich habe schon nach GetUserCurrentLCID gegoogelt, allerdings ohne Erfolg! Kennt jemand eine Lösung um die aktuell eingestellte Länderkennung auszulesen??? Danke und Gruß guitarre |
Re: Ländereinstellung ermitteln
Hallo,
eigentlich sollte die über die Systemsteuerung geänderte Wahl des Gebietsschemas über die API-Funktion GetThreadLocale() reflektiert werden - wird sie aber nicht:
Delphi-Quellcode:
Vielleicht mache ich aber auch einen Fehler.
function GetLanguageName(lcid: LCID): string;
begin with Languages do Result := NameFromLocaleID[lcid]; end; // ShowMessage(GetLanguageName(GetThreadLocale)); Auf ein besonderes Problem weist Microsoft noch hin: ![]() Freundliche Grüße |
Re: Ländereinstellung ermitteln
vll noch als tipp.... um an ein infos einigermaßen bequem zu kommen...
Delphi-Quellcode:
das ist recht praktisch, wenn es um währungen, dezimal etc geht...
type TFoobat = class(TWinControl)
localFormatSettings : TFormatSettings; [...] GetLocaleFormatSettings(LOCALE_SYSTEM_DEFAULT, localFormatSettings); und dazu vll auch noch: wenn sich etwas wärend der laufzeit ändert wird diese message gefeuert....
Delphi-Quellcode:
cya
procedure WinSettingsChange(var Message: TMessage); message WM_WININICHANGE;
[...] procedure TSettingsWatchDog.WinSettingsChange(var Message: TMessage); begin if message.msg = WM_WININICHANGE then GetLocaleFormatSettings(LOCALE_SYSTEM_DEFAULT, localFormatSettings); inherited; end; Corelgott |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:29 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz