![]() |
Gültigkeitsbereich des Decimalseparator
Hallo,
wenn ich in einer Funktion meines Programmes den Decimalseparator setze, gilt er dann Windowsweit, programmweit oder nur in dieser funktion??? Danke, winx |
Re: Gültigkeitsbereich des Decimalseparator
Hai winx,
meines wissens gilt er in deinem Programm da Delphi ja nicht bei jedem Funktionsaufruf der diese Variable auswertet sich die Daten neu von Windows holt sondern nur einmal beim Programm start. Wenn dein Programm also nicht mit threads oder Timern usw. arbeitet gilt die Änderung "nur" in deiner Funktion. Du musst aber natürlich am ende der Funktion den Dec-Seperator wieder auf den ursprungswert setzen. |
Re: Gültigkeitsbereich des Decimalseparator
Zitat:
|
Re: Gültigkeitsbereich des Decimalseparators
Zitat:
Das Problem macht aber das VB-Programm (es arbeitet ebenfalls mit dem DOS-Programm zusammen), welches die beiden Separatoren fest in Windows verändert. Da mich diese feste Umstellung stört, möchte ich sie im Programm zurücksetzen. Die Frage: Kann man und wie in einem Delphi-Programm diese beiden Variablen (eigentlich die "Regionale Einstellungen") fest verändern? Falls dies in Delphi nicht gehen sollte, kann mir jemand den Tipp geben, wie man dies in VB macht (das VB Programm macht dies nämlich!). |
AW: Gültigkeitsbereich des Decimalseparator
Natürlich kannst du bei Programmstart diese beiden Variablen immer ändern, so daß sie deinen Wünschen entsprechen.
Achtung: Wenn in Windows dieses systemweit geändert wird, dann wird meistens eine Änderungsmeldung an alle Programme geschickt und Delphi reagiert darauf (zumindestens "aktuellere" Delphi-Versionen) und läd dann die neuen Werte in die Variablen rein. > du müßtest also auch darauf reagieren und Dieses in deinem Programm erneut überschreiben. PS: Bei einigen Funktionen kannst du auch direkt einen TFormatSettings-Record mitgeben. Dessen Einstellungen werden dann immer genutzt, egal was in diesen globalen Variablen drinsteht. |
AW: Gültigkeitsbereich des Decimalseparator
Hallo,
Das Programm verwendet wahrscheinlich SetLocaleInfo + LOCALE_SDECIMAL um das Dezimaltrennzeichen zu ändern. |
AW: Gültigkeitsbereich des Decimalseparator
IMHO sollte man Fehler nicht Fehlern korrigieren, eine Veränderung der Windowseinstellungen halte ich für nicht sinnvoll, kannst das VB-Programm anpassen?
|
AW: Gültigkeitsbereich des Decimalseparator
Zitat:
Also, ich bin auch der Meinung, dass das VB-Programm einen Fehler macht, aber kann nichts dagegen tun als entweder im Windows die Regionale Einstellungen wieder zu ändern (mühsam und manuell!), oder ,wass mir viel lieber wäre, dies per Programm zu tun. Deshalb nochmals: Wie mache ich dies in einem Delphi-Programm, oder, wenn dies nicht geht, wie macht man dies in einem VB-Programm? Da ich von VB wenig Ahnung habe, so wäre hier das Code sehr hilfsreich, eine DLL noch besser. Danke, Toni |
AW: Gültigkeitsbereich des Decimalseparator
Zitat:
ist SetLocaleInfo + LOCALE_SDECIMAL in einer DLL zu finden, oder Etwas aus VB? Gibt es auch was vergleichbares für TausendSeparator? Danke, Toni |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06: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