![]() |
Ländereinstellungen werden nicht übernommen
Ich habe ein Programm mit XE2 geschrieben (Konsole), diese Programm ist ein Server das mit jeder Verbindung einen neue Thread erstellt.
Jetzt zum Problem, ich nutze beim Start des Main Threads folgenden Code
Delphi-Quellcode:
Um die Länder Einstellung des Programm auf Deutsch einzustellen.
Settings := TFormatSettings.Create(LANG_GERMAN);
For i := 0 to High(FormatSettings.LongMonthNames) do Begin FormatSettings.LongMonthNames[i] := Settings.LongMonthNames[i]; End; For i := 0 to High(FormatSettings.LongDayNames) do Begin FormatSettings.LongDayNames[i] := Settings.LongDayNames[i]; End; For i := 0 to High(FormatSettings.ShortMonthNames) do Begin FormatSettings.ShortMonthNames[i] := Settings.ShortMonthNames[i]; End; For i := 0 to High(FormatSettings.ShortDayNames) do Begin FormatSettings.ShortDayNames[i] := Settings.ShortDayNames[i]; End; FormatSettings.ShortDateFormat := 'dd.mm.yyyy'; FormatSettings.DateSeparator := '.'; FormatSettings.TimeSeparator := ':'; FormatSettings.DecimalSeparator := ','; Das geht aber nicht immer ab und zu ist das Programm dann Englisch und bleibt auch dabei bis es wieder neu gestartet wird. Muss ich die Einstellungen für jeden Thread einzeln machen oder was ist das Problem. |
AW: Ländereinstellungen werden nicht übernommen
Es ist wirklich schwer herauszufinden wo dein Problem liegt mit dem was du an Code posted hast.
Allgemein solltest du aber deinen Thread so aufbauen: (freihand runtergetippt)
Delphi-Quellcode:
So würden 5 Threads mit der Sprache LANG_GERMAN erstellt. Jeder einzelne Thread threadObjekt[i] muss selbstverständlich seperat eine Sprache zugeordnet bekommen.
TMeinThread = class(TThread)
private m_Language : TLanguage; protected procedure Execute; override; public constructor Create(language: TLanguage); end; constructor TMeinThread.Create(language: TLanguage); begin inherited Create(false); // Dass der Thread nicht suspended gestartet wird FreeOnTerminate := True // Falls der Thread nicht manuell free wird. m_Language := language; // Der lokalen private-variable die dem Thread zugewiesene Sprache übermitteln end; procedure TForm1.FormCreate(Sender: TObject); var threadObjekte : array[0..4] of TMeinThread; i : Integer; begin for i := 0 to 4 do begin threadObjekt[i] := TMeinThread.Create(LANG_GERMAN); end; end; |
AW: Ländereinstellungen werden nicht übernommen
Moin...:P
Unabhängig von den Threads... Die FormatSettings sind fehlerhaft. Siehe: ![]() Prinzipiell betrifft u.a. das Time Format. :? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:31 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 by Thomas Breitkreuz