[gelöst] Gebietseinstellung in Win7 x64 nicht gültig in VCL-Anwendung?



  • Hallo Gemeinschaft,

    heute wende ich mich mit einem Problem an Euch, das mir schon vor Längerem aufgefallen ist und nun wieder zum Tragen kommt:

    Ich teste eine Anwendung auf Windows7 64Bit weiter. Als ich den Windows7-Test vor einiger Zeit begonnen hatte, fiel mir auf dass die Einstellung des zu verwendenen Dezimaltrennzeichen im Betriebssystem zwar korrekt auf "," steht, in der Anwendung jedoch ein "." als Dezimaltrennzeichen angezeigt / benutzt wird. Ich habe daraufhin in meiner Anwendung im FormShow des Hauptfensters DecimalSeparator= ','; eingefügt. Fortan wurde das Komma als Dezimaltrenner auch von der Anwendung angezeigt / genutzt... Ich muss dazu sagen, dass ich noch keinen ausführlichen Test machen konnte. Ich hatte die Anwendung nach Änderung nur schnell im Win7 x64 gestartet und im erstbesten Fenster nachgeschaut, ob nun das Dezimaltrennzeichen stimmt - Hat es!
    Nun setzte ich den Test fort und musste gleich zu Anfang feststellen, dass schon wieder eine Einstellung aus dem Betriebssystem für die Anwendung keine Gültigkeit hat: ShortDateFormat. Es fiel in einem Fenster, in welchem ein Datum nebst Uhrzeit angezeigt wird, auf. Da steht in einem Edit statt "18.11.2010 13:50:16" diese Version: "11/18/2010 1:50:16 pm". Ich habe gleich wieder nachgeschaut, was im Betriebssystem eingstellt ist. Dort steht unter "Region und Sprache" auf der Registerkarte "Formate":
    Format: Deutsch (Deutschland)
    Datum (kurz): TT.MM.JJJJ

    Ich bin sicher, dass ich das Beheben kann indem ich nun im FormShow() ShortDateFormat= "TT.MM.JJJJ"; ergänze. Allerdings verunsichert mich das Ganze sehr!

    Warum werden die OS-Einstellungen in der Anwendung nicht genutzt?

    Gibt es da Besonderheiten unter Windows7 x64 zu beachten?

    Ist das eventuell so ein Unicode-Problem?

    Mit freundlichen Grüßen



  • Einfach mal von "Deutsch(Deutschland)" auf irgendetwas Anderes (zb. "Deutsch(Österreich)") umstellen, "Übernehmen" drücken, Einstellungen schliessen und dann wieder "Deutsch(Deutschland)" einstellen und übernehmen: Das war schon Alles... 😉

    Ich hatte gerade mit "Datumsformat Windows 7 nicht in Anwendung" geg**gelt und die ersten Treffer hat mich zur Lösung geführt: http://www.delphipraxis.net/144200-%24-statt-%80-mit-windows-7-a-2.html.

    Ich hätte nicht gedacht, dass es so einfach wird!

    Danke fürs Lesen.

    MfG

    Edit1: Von g**gle bin ich erstmal zu http://www.delphipraxis.net/148784-windows-7-bei-manchen-systemen-falsches-datumsformat.html gelangt und dort steht im Eröffnungspost der oben angegebene Link. Es lohnt sich, beide Links zu lesen! 🙂



  • Danke Kolumbus, gut zu wissen.
    Ist aber schon ärgerlich, vor allem für den unbedarften Nutzer.

    [Nun Off Topic, da mich das eine Detail wundert:]

    Kolumbus schrieb:

    Von g**gle bin ich ...

    Schlägt hier bei "Google" etwa wieder die berüchtigte Rechtschreibkorrektur eines Admins zu?

    Hier ein paar Tests:
    Standard -> Standart
    Google
    googeln
    googlen
    Googel
    Guugle

    Martin

    [Nachtrag:]
    Kann es sein, daß Du g**gle selbst mit den beiden Sternen geschrieben hast?



  • Hallo,

    Mmacher schrieb:

    [...]Ist aber schon ärgerlich, vor allem für den unbedarften Nutzer. [...]

    Ja, und deswegen muss ich mir jetzt Gedanken machen, wie ich das im Programm abfange, ohne das der Benutzer den Windows7-Bug mitbekommt. Ich habe keine Lust auf ständige Anrufe von verärgerten Kunden, die ich dann per Telefon durch die Windows7-Systemsteuerung lotsen darf...

    Ich werde erstmal am Programmstart alle nötigen Format-Variablen setzen und hoffen, dass die während der Laufzeit nicht geändert werden. Ich kenne da die Zusammenhänge (noch) nicht, wann zB. die eingestellten Formate wieder verstellt werden könnten bzw. wie weit und wie lange die beim Programmstart getroffenen Einstellungen gültig sind.

    Mittelfristig muss ich mir nun überlegen, wie ich Verarbeitung und Anzeige trennen kann. Gerade in Hinsicht auf mehrsprachige Programme muss man damit rechnen, dass zB. das kurze Datum eben nicht immer im Format "dd.mm.jjjj" angezeigt wird. Ich find es auch nicht so schön, dem Benutzer mein gewohntes Datumsformat aufzuzwingen...

    Mmacher schrieb:

    [...]
    [Nachtrag:]
    Kann es sein, daß Du g**gle selbst mit den beiden Sternen geschrieben hast?

    🤡
    Du hast soeben eine Waschmaschine als Selbst-Bausatz gewonnen. Der Satz wird innerhalb der nächsten 35 Jahre mit einem Teil pro Monat geliefert...


Log in to reply