AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Software verhält sich auf Betriebssystemen unterschiedlich
Thema durchsuchen
Ansicht
Themen-Optionen

Software verhält sich auf Betriebssystemen unterschiedlich

Ein Thema von günni0 · begonnen am 8. Mär 2018 · letzter Beitrag vom 9. Mär 2018
Antwort Antwort
Seite 2 von 3     12 3      
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#11

AW: Software verhält sich auf Betriebssystemen unterschiedlich

  Alt 9. Mär 2018, 16:21
Ich komme der Problemstelle näher.
Könnte es sein, dass eine der beiden folgenden Zeilen bei manchen Windows 10-Installationen Probleme verursacht?

Delphi-Quellcode:
DateTimePicker1.Time := StrToTime('12:00:00');
DateTimePicker2.DateTime := Now + 1;
Schon vor diesem Fehler beim Programmstart rufe ich eine Prozedur auf die das hier ausführt
Delphi-Quellcode:
 FormatSettings.TimeSeparator := System.SysUtils.TimeSeparator;
 FormatSettings.DateSeparator := System.SysUtils.DateSeparator;
Lass mich raten: Das eine Windows 10, wo es funktioniert, hat deutsche Spracheinstellungen und das andere Windows 10, bei dem es nicht funktioniert, hat eine andere Sprache, bspw. Englisch?
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.508 Beiträge
 
Delphi 7 Professional
 
#12

AW: Software verhält sich auf Betriebssystemen unterschiedlich

  Alt 9. Mär 2018, 16:21
Und was steht im System.SysUtils.TimeSeparator?
Der : oder eine andere Systemeinstellung?

Die Windowskonfiguration bezüglich der Datums- und Zeiteinstellungen eventuell mal überprüfen?
  Mit Zitat antworten Zitat
günni0
(Gast)

n/a Beiträge
 
#13

AW: Software verhält sich auf Betriebssystemen unterschiedlich

  Alt 9. Mär 2018, 16:30
Zitat:
Lass mich raten: Das eine Windows 10, wo es funktioniert, hat deutsche Spracheinstellungen und das andere Windows 10, bei dem es nicht funktioniert, hat eine andere Sprache, bspw. Englisch?
Richtig. Der Problem-PC steht irgendwo auf der Welt wo ich keinen Zugriff habe. Wenn ich mich nicht irre irgendwo in Indien.

Ich nutze Delphi für Windows Version 10.2 (kostenlos).
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#14

AW: Software verhält sich auf Betriebssystemen unterschiedlich

  Alt 9. Mär 2018, 16:36
Zitat:
Lass mich raten: Das eine Windows 10, wo es funktioniert, hat deutsche Spracheinstellungen und das andere Windows 10, bei dem es nicht funktioniert, hat eine andere Sprache, bspw. Englisch?
Richtig. Der Problem-PC steht irgendwo auf der Welt wo ich keinen Zugriff habe. Wenn ich mich nicht irre irgendwo in Indien.

Ich nutze Delphi für Windows Version 10.2 (kostenlos).
Denk mal drüber nach, was passiert, wenn du einen String mit deutschen Zeitformat versuchst in eine Zeit auf einen (wahrscheinlich) englischen Betriebssystem umzuwandeln.
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.508 Beiträge
 
Delphi 7 Professional
 
#15

AW: Software verhält sich auf Betriebssystemen unterschiedlich

  Alt 9. Mär 2018, 16:38
Das ist jetzt geraten und nur so als Idee gedacht:
Delphi-Quellcode:
var
  sUhrZeit : String;
begin
  sUhrZeit := Format('%.2d%s%.2d%s%.2d',[12, System.SysUtils.TimeSeparator, 0, System.SysUtils.TimeSeparator, 0]);
  DateTimePicker1.Time := StrToTime(sUhrzeit);
  DateTimePicker2.DateTime := Now + 1;
end;
  Mit Zitat antworten Zitat
günni0
(Gast)

n/a Beiträge
 
#16

AW: Software verhält sich auf Betriebssystemen unterschiedlich

  Alt 9. Mär 2018, 16:39
Ich dachte StrToTime berücksichtigt das alles.

Mein Workaround sieht so aus

Delphi-Quellcode:

function CustomFormatSettings(TimeSeparator: Char = ':'; DateSeparator: Char = '/'): TFormatSettings;
begin
 Result := TFormatSettings.Create(GetUserDefaultLCID);
 Result.TimeSeparator := TimeSeparator;
 Result.DateSeparator := DateSeparator;
 Result.ShortDateFormat := 'dd' + DateSeparator + 'mm' + DateSeparator + 'yyyy';
 Result.LongDateFormat := 'dddd, dd. mm yyyy';
end;

DateTimePicker1.Time := StrToTime('12:00:00', CustomFormatSettings);
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#17

AW: Software verhält sich auf Betriebssystemen unterschiedlich

  Alt 9. Mär 2018, 16:49
Hallo,
endlich mal eine Problembeschreibung von Dir

Bei manchen Windows-Installationen ist das Datumsformat vermurkst.
Ich weiß, wir sind hier bei der Uhrzeit.

Unter Windows gibt es 2 Einstellungsstellen für die Region.
Die eine Stelle siehst unter Systemsteuerung/ Region, Delphi benutzt die andere ...

Lösung1:
Unter Region auf "Weitere Einstellungen" und dort unten auf "Zurücksetzen".

Lösung2:
DateTimePicker1.Time := EncodeTime(12,0,0,0);
Also weg von den StrToX-Funktionen.

Wir haben uns wie auch Du eine eigene Methode gebaut.
Heiko
  Mit Zitat antworten Zitat
günni0
(Gast)

n/a Beiträge
 
#18

AW: Software verhält sich auf Betriebssystemen unterschiedlich

  Alt 9. Mär 2018, 17:02
Was ist denn zu bevorzugen.

EncodeTime oder StrToTime mit FormatSettings als Parameter?
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.508 Beiträge
 
Delphi 7 Professional
 
#19

AW: Software verhält sich auf Betriebssystemen unterschiedlich

  Alt 9. Mär 2018, 17:03
EncodeTime
  Mit Zitat antworten Zitat
günni0
(Gast)

n/a Beiträge
 
#20

AW: Software verhält sich auf Betriebssystemen unterschiedlich

  Alt 9. Mär 2018, 17:06
Letzte Frage. Wie gehe ich denn am besten an einer Stelle vor, wo ich StrToTime verwenden muss, weil der Parameter ein String ist und ich dessen Format nicht immer zu 100% sicherstellen kann?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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:41 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