AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Regionale Einstellungen

Ein Thema von Cogito · begonnen am 9. Mai 2012 · letzter Beitrag vom 24. Mai 2012
Antwort Antwort
Seite 1 von 3  1 23   
Cogito

Registriert seit: 12. Jun 2008
280 Beiträge
 
#1

Regionale Einstellungen

  Alt 9. Mai 2012, 12:35
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?
  Mit Zitat antworten Zitat
ASM

Registriert seit: 15. Aug 2004
165 Beiträge
 
Delphi 7 Enterprise
 
#2

AW: Regionale Einstellungen

  Alt 9. Mai 2012, 14:15
Kann mir jemand sagen, ob und wie ich in Delphi veranlassen kann, das grundsätzlich immer das Komma als Dezimaltrennzeichen verwendet wird?
Hiermit sollte es vermutlich gehen:
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;
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.903 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Regionale Einstellungen

  Alt 9. Mai 2012, 14:55
schade, hätte ich auch gebrauchen können, aber Lazarus kennt:


Application.UpdateFormatSettings

ledier nicht
Karl-Heinz
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.535 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Regionale Einstellungen

  Alt 9. Mai 2012, 15:06
Kennt Lazarus denn die globale Variable Decimalseparator aus SysUtils?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.903 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Regionale Einstellungen

  Alt 9. Mai 2012, 15:14
ja, die kennt Lazarus
Karl-Heinz
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.323 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Regionale Einstellungen

  Alt 9. Mai 2012, 15:17
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.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#7

AW: Regionale Einstellungen

  Alt 9. Mai 2012, 15:27
... Ich dachte bisher immer das würde einzig von den Region-Einstellungen unter Windows abhängen
Das tut es auch.
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)
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.097 Beiträge
 
Delphi 12 Athens
 
#8

AW: Regionale Einstellungen

  Alt 9. Mai 2012, 15:44
Dann kann es passieren, dass Delphi-Programme alle regionalen Einstellungen als English(USA) auslesen, obwohl in der Systemsteuerung Deutsch(Deutschland) eingestellt ist.
Da es nicht richtig (nur teilweise) auf Deutsch eingestellt ist und der Teil vergessen wurde zu ändern, wo Delphi seine Informationen herbekommt.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
1.120 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Regionale Einstellungen

  Alt 9. Mai 2012, 16:59
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.
  Mit Zitat antworten Zitat
Cogito

Registriert seit: 12. Jun 2008
280 Beiträge
 
#10

AW: Regionale Einstellungen

  Alt 16. Mai 2012, 10:03
Kann mir jemand sagen, ob und wie ich in Delphi veranlassen kann, das grundsätzlich immer das Komma als Dezimaltrennzeichen verwendet wird?
Hiermit sollte es vermutlich gehen:
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;
Dieser Code funktioniert bei mir nicht.
In der Zeile
Code:
if SetLocaleInfo(DefLCID, LOCALE_SDECIMAL, Buffer) then
meldet mir der Compiler einen Fehler: Inkompatible Typen 'AnsiChar' und 'Char'

Kannst du deine Funktion mal testen?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 06:56 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