![]() |
Regionale Einstellungen
Hallo zusammen,
in verwende in meinem Programm ein datagrid, bei welchem eines der Felder auf einem decimal field in SQL Server 2008 basiert. Auf manchen Rechnern kann man ein Komma als dezimal trenner verwenden, auf manchen aber auch nicht. Ich dachte bisher immer das würde einzig von den Region-Einstellungen unter Windows abhängen, aber mein Kollege hier hat z.B. auch ein Komma als Trenner eingestellt, kann dies aber nicht in Dezimalfeldern verwenden. Es geht darum, das Kunden gerne immer ein Komma verwenden möchten, weil dies im numerischen Block der Tastatur verfügbar ist und die Eingabe von Dezimalzahlen dadurch sehr viel schneller vonstatten gehen kann. Kann mir jemand sagen, ob und wie ich in Delphi veranlassen kann, das grundsätzlich immer das Komma als Dezimaltrennzeichen verwendet wird? |
AW: Regionale Einstellungen
Zitat:
Code:
procedure SetDecimalSeparator(Ch: Char);
var DefLCID: LCID; Buffer: LPSTR; begin Application.UpdateFormatSettings := True; StrPCopy(Buffer, Ch); DefLCID := GetThreadLocale; if SetLocaleInfo(DefLCID, LOCALE_SDECIMAL, Buffer) then DecimalSeparator := StrPas(Buffer)[1]; Application.UpdateFormatSettings := False; end; procedure TForm1.FormActivate(Sender: TObject); begin SetDecimalSeparator(','); end; |
AW: Regionale Einstellungen
schade, hätte ich auch gebrauchen können, aber Lazarus kennt:
Application.UpdateFormatSettings ledier nicht :-( |
AW: Regionale Einstellungen
Kennt Lazarus denn die globale Variable Decimalseparator aus SysUtils?
|
AW: Regionale Einstellungen
ja, die kennt Lazarus
|
AW: Regionale Einstellungen
Solange Lazarus die Einstellungen nicht zwischendrin wiederherstellt kannst du das auch weglassen. Bei Delphi dient das dazu, dass die gesetzten Einstellungen auch bei einer Aktualisierung beibehalten werden.
|
AW: Regionale Einstellungen
Zitat:
Es sei denn es handelt sich um Window Vista oder Windows 7. Dann kann es passieren, dass Delphi-Programme alle regionalen Einstellungen als English(USA) auslesen, obwohl in der Systemsteuerung Deutsch(Deutschland) eingestellt ist. Dann muss man auf Englisch umschalten, abspeichern und wieder auf Deutsch umschalten und abspeichern. (Natürlich für jeden Windows User) |
AW: Regionale Einstellungen
Zitat:
|
AW: Regionale Einstellungen
ist doch ein bekannter Windows Bug, verfügbar in XP Vista und WIN 7 :
um den richtig Ländercode auslesen zu können zuerst die Sprache in der Systemsteuerung von Deutsch auf Isländisch (oder ...) stellen speichern und dann von Isländisch zurück auf Deutsch. Dann kann man auch Deutsch mit den Ländereinstellungen auslesen. |
AW: Regionale Einstellungen
Zitat:
In der Zeile
Code:
meldet mir der Compiler einen Fehler: Inkompatible Typen 'AnsiChar' und 'Char'
if SetLocaleInfo(DefLCID, LOCALE_SDECIMAL, Buffer) then
Kannst du deine Funktion mal testen? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:41 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