Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Windows 7: bei manchen Systemen falsches Datumsformat? (https://www.delphipraxis.net/148784-windows-7-bei-manchen-systemen-falsches-datumsformat.html)

holliesoft 8. Mär 2010 09:50


Windows 7: bei manchen Systemen falsches Datumsformat?
 
Hallo zusammen,

ich bin gerade bei der Suche über diesen Fred gestolpert.

Irgendwie habe ich die Vermutung, dass da bei einigen Windows 7-Systemen was nicht ganz sauber läuft.

Wir supporten hier auf der Arbeit einen von einem Dienstleister produzierten USB-Stick. Ich vermute, dass dort auch Delphi eingesetzt wird, denn ein kleines Testtool zur Ermittlung des Datumsformats trägt das Delphi-Icon :-)

Die Software auf dem Stick arbeitet mit einer Kopierschutzroutine, welche das Systemdatum ermittelt und bei überschreiten eines bestimmten Datums die Lizenz ungültig macht und den Content auf dem Stick löscht.

Diese Löschroutine hatte nun auf mehreren Windows7-Rechnern unserer Mitarbeiter zugeschlagen. Bei Kontrolle mit einem Testtool hatte sich dann herausgestellt, das trotz korrekter Ländereinstellungen ("Deutsch(Deutschland)") das falsche Datumsformat (nämlich mm/dd/yyyy) verwendet wurde. Erst nach Änderung auf ein anderes Land und erneutes ändern auf "Deutsch (Deutschland)" wurde das Datumsformat von der Delphi-Testapplikation (und von dem Kopierschutz) korrekt ermittelt.

Ich vermute ganz stark, dass hier bei einigen Windows 7 Konstellationen der Wurm drin ist. Hat das außer mir schon jemand irgendwo erlebt? Es wäre auch schön, wenn jemand Zugriff zu 0815-Windows 7-Komplett-PCs (aus Saturn, MM etc.) hat, und dort einfach mal eine kleine Testanwendung ausführen könnte, die einfach das Ergebnis von DateToStr ausgibt, nur um zu schauen, ob der Fehler dort auch auftritt.

Viele Grüße
ein derzeit ratloser Patrick

Bernhard Geyer 8. Mär 2010 09:53

Re: Windows 7: bei manchen Systemen falsches Datumsformat?
 
Im Forum von Codegear waren schon mal darüber einige Diskussionen über dieses Problem.
Schau mal dort ob dabei was rausgekommen ist.

holliesoft 8. Mär 2010 09:57

Re: Windows 7: bei manchen Systemen falsches Datumsformat?
 
Hi Bernhard,

danke für den Hinweis, werde mal dort schauen...

himitsu 8. Mär 2010 10:04

Re: Windows 7: bei manchen Systemen falsches Datumsformat?
 
Was nimmt man auch solche veränderlichen Formate für eine "genau" Auswertung?

Lösung: Man nutze einfach keinen formatierten String (weder Datum noch Sonstwas) für derartige Prüfungen.
(oder man gibt das Format selber vor, aber das ist doch umständlicher, als direkt mit TDateTime oder einem anderem gleichwertigem Datumsformat zu prüfen)


Was macht man denn, wenn jemand das Programm auf einem anderssprachigem System einsetzen will
oder wenn jemand zwar ein deutsches Windows besitzt, aber seine eigene/persönliche Einstellung bei sowas nutzt?

holliesoft 8. Mär 2010 10:28

Re: Windows 7: bei manchen Systemen falsches Datumsformat?
 
Zitat:

Zitat von himitsu
Was nimmt man auch solche veränderlichen Formate für eine "genau" Auswertung?

Lösung: Man nutze einfach keinen formatierten String (weder Datum noch Sonstwas) für derartige Prüfungen.
(oder man gibt das Format selber vor, aber das ist doch umständlicher, als direkt mit TDateTime oder einem anderem gleichwertigem Datumsformat zu prüfen)

Was macht man denn, wenn jemand das Programm auf einem anderssprachigem System einsetzen will
oder wenn jemand zwar ein deutsches Windows besitzt, aber seine eigene/persönliche Einstellung bei sowas nutzt?

Tja, das selbe habe ich meinen Chef auch gesagt... Ist wie gesagt keine Anwendung von mir oder meinem Arbeitgeber, sondern was gekauftes. Mir ist schleierhaft, wieso überhaupt hier eine Konvertierung DateToStr bzw. StrToDate durchgeführt wird, um ein Datum zu vergleichen. Wenn ich ein Datum in einer Konfigurationsdatei ablege, die nur von der Anwendung selbst gelesen werden soll, dann mache ich das grundsätzlich als Integer, und nicht als String.

Aber egal, was ich in diesem Betrieb sage, es interessiert eh keinen von der Führungsebene :wall:

Sherlock 8. Mär 2010 10:58

Re: Windows 7: bei manchen Systemen falsches Datumsformat?
 
Zitat:

Zitat von holliesoft
Aber egal, was ich in diesem Betrieb sage, es interessiert eh keinen von der Führungsebene :wall:

Du sollst das ja auch nicht Deinem Chef sagen, sondern dem Anbieter dieser fehlerhaften Software.

;)

Sherlock

holliesoft 8. Mär 2010 11:02

Re: Windows 7: bei manchen Systemen falsches Datumsformat?
 
Zitat:

Zitat von Sherlock
Zitat:

Zitat von holliesoft
Aber egal, was ich in diesem Betrieb sage, es interessiert eh keinen von der Führungsebene :wall:

Du sollst das ja auch nicht Deinem Chef sagen, sondern dem Anbieter dieser fehlerhaften Software.

;)

Sherlock

Tja, dumm nur, dass die Kommunikation mit dem Anbieter hier über mehrere Ebenen läuft und ich bin am unteren Ende. Aber das ist hier schon immer so gewesen *seufz*

Zurück zum Problem: Es scheint so, als würde das Problem Systeme betreffen, bei denen Windows 7 in der US-Sprach-Version installiert wurde und dann das deutsche Language Pack darüber installiert wurde... hmmm.

Bei Codegear finde ich auf die Schnelle diesen Thread zu dem Thema...

Sherlock 8. Mär 2010 11:05

Re: Windows 7: bei manchen Systemen falsches Datumsformat?
 
Language Pack <> Deutsches Datumsformat.
Software, die nicht korrekt das Datum ausliest ist fehlerhaft, sofern nicht in der Anleitung oder sonstwo steht, daß das Datum auf eine bestimmte Art zu formatieren ist. Das soltle doch ganz leicht zu verklickern sein. Zumal man den Fehler auf jemand anderen abwälzen kann, sowas lieben BWLer aka Entscheidungsträger. Verkauf das alles als Bug in der Fremdsoftware und alle sind glücklich, da es Null-Aufwand (=Null-Kosten) für Deine Firma bedeuetet.

Sherlock

sh17 9. Mär 2010 07:48

Re: Windows 7: bei manchen Systemen falsches Datumsformat?
 
Also wir kennen das Problem. Trat bis jetzt nur bei Windows 7 64bit auf. Trotz deutscher Ländereinstellung werden die globalen Variablen zur Datums-Formatierung in Delphi mit den englischen Variante belegt. Zumindest bei unserem Delphi 6. Wer jetzt nun der Schuldige ist (das alte Delphi 6 oder Windows 7), das herauszufinden hatte wir jetzt keine Lust. Man setzt nach Programmstart einfach die Variablen noch mal von Hand:

Delphi-Quellcode:
  CurrencyFormat := 3;
  NegCurrFormat := 8;
  ThousandSeparator := '.';
  DecimalSeparator := ',';
  CurrencyDecimals := 2;
  DateSeparator := '.';
  ShortDateFormat := 'dd.MM.yyyy';
  LongDateFormat := 'dddd, d. MMMM yyyy';
  TimeSeparator := ':';
  TimeAMString := '';
  TimePMString := '';
  ShortTimeFormat := 'hh:mm';
  LongTimeFormat := 'hh:mm:ss';
Und schon klappt das ganze.

Ebenso sollte man bei FOrmatanweisunge auf %m und ähnliches verzichten. Bei %m wird einem z.B. das Dollar-Zeichen anstatt des Euro untergejubelt.

//Edit
um das ganze zu verhindern sollte man DateToStr sowieso nicht verwenden, sonst lieber auf FormatDateTime setzen und alles selbst machen.

Sven

Alter Mann 9. Mär 2010 17:44

Re: Windows 7: bei manchen Systemen falsches Datumsformat?
 
Hi,

hatte das Problem auch, aber in anderer Art und Weise.

Windows 7/64 Ultimate US + deutsches Language Pack, trozdem war die Anzeige von Uhrzeit und Datum immer noch US.

In diesem Fall muss jeder Benutzer für sich die Einstellungen für Datum, Uhrzeit oder das Zahlenformat ändern.

Viele Grüße


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:07 Uhr.
Seite 1 von 4  1 23     Letzte »    

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