AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Formatierungsprobleme bei TJvValidateEdit

Offene Frage von "SteffenSchm"
Ein Thema von SteffenSchm · begonnen am 11. Dez 2009 · letzter Beitrag vom 16. Dez 2009
Antwort Antwort
SteffenSchm

Registriert seit: 2. Nov 2004
Ort: Herzogenaurach
84 Beiträge
 
Delphi 10.3 Rio
 
#1

Formatierungsprobleme bei TJvValidateEdit

  Alt 11. Dez 2009, 19:16
Ich habe für mein Programm ausgiebig von der JVCL Komponente TJvValidateEdit Gebrauch gemacht. An meinem Entwicklungsrechner klappte alles Prima.

Auf einem anderen Rechner traten aber beim Arbeiten mit dem fertigen Programm unerwartete Effekte auf. Ein so zugewiesener Wert

  JvValidateEdit1.Value:=1.2; erscheint in der Anzeige als

1200,00

Nach jedem Auslesen und erneutem Zuweisen von JvValidateEdit1.Value (ohne Editieren des Wertes) erhöht sich der Wert um den Faktor 1000.

Auf beiden Rechnern habe ich die regionalen Einstellungen für Deutschland aktiviert. Auch sonst kann ich keine Unterschiede zwischen den Einstellungen der beiden Rechner finden.

Der Fehler tritt auch unabhängig davon auf, welches DisplayFormat (dfFloat, dfFixedFloat, dfDecimal,...) von TJvValidateEdit ich auswähle.

Ich bin hilflos !
Steffen
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#2

Re: Formatierungsprobleme bei TJvValidateEdit

  Alt 12. Dez 2009, 14:01
Regionale Einstellung für Deutschland ist:
. = Tausenderseparator,
, = Dezimalseparator.
  Mit Zitat antworten Zitat
SteffenSchm

Registriert seit: 2. Nov 2004
Ort: Herzogenaurach
84 Beiträge
 
Delphi 10.3 Rio
 
#3

Re: Formatierungsprobleme bei TJvValidateEdit

  Alt 12. Dez 2009, 14:14
Ja das weis ich wohl.
Bei regionaler Einstellung für Deutschland ist das auch eingestellt und zwar für beide Rechner - meinen Entwicklungsrechner und den Testrechner. Trotzdem regiert das Programm bzw. die Komponente TJvValidateEdit auf beiden Rechnern unterschiedlich.

Ganz undabhängig davon, was als Tausend- und Dezimaltrennzeichen eingestellt ist, müsste bei Umwandlung eines Double-Wertes in einen String und zurück eigentlich wieder das gleiche rauskommen - ist aber nicht so.

Hat vlt. jemand anderes dieses Problem auch schon gehabt?
Steffen
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#4

Re: Formatierungsprobleme bei TJvValidateEdit

  Alt 12. Dez 2009, 14:24
Zitat von SteffenSchm:
Ja das weis ich wohl.
Die Eingabe "JvValidateEdit1.Value:=1.2;" entspricht nicht den Konventionen - entweder "JvValidateEdit1.Value:=1.200;" oder
"JvValidateEdit1.Value:=1,2;"
  Mit Zitat antworten Zitat
SteffenSchm

Registriert seit: 2. Nov 2004
Ort: Herzogenaurach
84 Beiträge
 
Delphi 10.3 Rio
 
#5

Re: Formatierungsprobleme bei TJvValidateEdit

  Alt 12. Dez 2009, 16:38
Ich übergebe an JvValidateEdit1.Value ja nicht einen String, sondern einen Double-Wert!
Steffen
  Mit Zitat antworten Zitat
SteffenSchm

Registriert seit: 2. Nov 2004
Ort: Herzogenaurach
84 Beiträge
 
Delphi 10.3 Rio
 
#6

Re: Formatierungsprobleme bei TJvValidateEdit

  Alt 16. Dez 2009, 13:11
Bei der Suche nach der Ursache bin ich inzwischen einen Schritt weiter:

TJvValidateEdit verwendet zur Typumwandlung Zahl --> String --> Zahl unterschiedliche Werte für ThousandSeparator und DecimalSeparator. Teilweise werden die von Delphi initialsierten Variablen benutzt und teilweise werden diese mit GetLocalChar aus dem Betriebssystem geholt.

Theoretisch sollte das egal sein, da beide Arten zu den gleichen Zeichen für ThousandSeparator und DecimalSeparator führen müssten.

Bei meinem Entwicklungsrechner ist das auch so, bei anderen PCs aber nicht (alle mir Regionaleinstelung für Deutschland). Bei mindestens zwei Rechnern zeigt die globalen Variablen ThousandSeparator und DecimalSeparator nicht auf die deutschen sondern auf die englischen Werte, während GetLocalChar(...) die richtigen, deutschen Einstellung zurückliefert.

Die globalen Variablen ThousandSeparator und DecimalSeparator werden im Initilisierungsteil von SysUtils ebenfalls mit der Funktion GetLocalChar(...) aus dem Betriebssystem gelesen. Evtl. ist diese Initialisierung nicht erfolgreich. In diesem Fall werden als Standardwerte die englischen Einstellungen für ThousandSeparator und DecimalSeparator übernommen.

Hat jemand die gleichen Probleme oder eine Idee ?
Steffen
  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 19:32 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