AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Was könnte die Funktion Now: TDateTime; blockieren?
Thema durchsuchen
Ansicht
Themen-Optionen

Was könnte die Funktion Now: TDateTime; blockieren?

Ein Thema von arc · begonnen am 4. Sep 2010 · letzter Beitrag vom 14. Mär 2013
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von arc
arc

Registriert seit: 6. Nov 2009
Ort: Elbflorenz
62 Beiträge
 
FreePascal / Lazarus
 
#1

Was könnte die Funktion Now: TDateTime; blockieren?

  Alt 4. Sep 2010, 13:27
Ich nutze Delphi 7 unter Windows 7 und habe ein Problem mit dem Code DateTimeToStr(Now) festgestellt.
Prinzipiell möchte ich nur das aktuelle Datum / Zeit ausgeben, wie das gemacht wird ist mir dabei zweitrangig. Wenn es also alternative Wege gibt, würde mir das auch helfen.

In einem neuen Projekt funktioniert die Funktion wie gewünscht, in meinem eigentlichen Projekt jedoch leider nicht. Die Zeit wird einmal beim Start ausgelesen, aktualisiert sich aber nicht mehr. Jeder Folgeaufruf von Now liefert den selben Zeitstempel. Leider habe ich keine Idee, wodurch das hervorgerufen werden könnte.

Wie könnte ich der Ursache auf den Grund gehen? Habt ihr vielleicht eine Idee oder einen anderen Code um die aktuelle Zeit / Datum auszugeben?

Danke!
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Was könnte die Funktion Now: TDateTime; blockieren?

  Alt 4. Sep 2010, 13:39
Hast Du vielleicht eine Variable "Now" definiert, die einmal gesetzt wird und dann immer wieder ausgelesen?
(Könnte auch in einer benutzten Unit so definiert sein.)
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von arc
arc

Registriert seit: 6. Nov 2009
Ort: Elbflorenz
62 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Was könnte die Funktion Now: TDateTime; blockieren?

  Alt 4. Sep 2010, 16:28
Habe mir jetzt einfach diese Funktion erstellt. Wird am Ende irgendein Bug mit Windows 7 sein, mein Delphi 7 ist ja auch schon in die Jahre gekommen...

Code:
function API_GetCurrentDate:string;
var SystemTime1: TSystemTime;
begin
  GetLocalTime(SystemTime1);
  result:=Format('%.2d.%.2d.%d %.2d:%.2d:%.2d',[SystemTime1.wDay,SystemTime1.wMonth,SystemTime1.wYear,SystemTime1.wHour,SystemTime1.wMinute,SystemTime1.wSecond])
end;
}
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

AW: Was könnte die Funktion Now: TDateTime; blockieren?

  Alt 4. Sep 2010, 16:42
Die Funktion ignoriert nur leider meine Datumseinstellungen. Wäre es nicht sinnvoller, wenn die Funktion einen Wert vom Typ TDateTime zurückgeben würde, wie es Now auch tut?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#5

AW: Was könnte die Funktion Now: TDateTime; blockieren?

  Alt 4. Sep 2010, 19:14
Das sehe ich auch so. Da müsste eigentlich ein 2-Zeiler genügen.
Delphi-Quellcode:
function GiveMeTheCurrentTime: TDateTime;
var SysTime: TSystemTime;
begin
  GetLocalTime(SysTime);
  Result := SystemTimeToDateTime(SysTime);
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Valle
Valle

Registriert seit: 26. Dez 2005
Ort: Karlsruhe
1.223 Beiträge
 
#6

AW: Was könnte die Funktion Now: TDateTime; blockieren?

  Alt 4. Sep 2010, 19:18
... wäre es nicht sinnvoller die Fehlerursache ausfindig zu machen,
anstatt hier Workarounds zu erstellen?

Liebe Grüße,
Valle
Valentin Voigt
BOFH excuse #423: „It's not RFC-822 compliant.“
Mein total langweiliger Blog
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#7

AW: Was könnte die Funktion Now: TDateTime; blockieren?

  Alt 4. Sep 2010, 19:22
Nun, ein Hinweis wurde ja bereits gegeben. Und wenn schon Workaround, dann aber richtig
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

AW: Was könnte die Funktion Now: TDateTime; blockieren?

  Alt 4. Sep 2010, 19:58
... wäre es nicht sinnvoller die Fehlerursache ausfindig zu machen,
anstatt hier Workarounds zu erstellen?
Sicher, aber ohne nähere Informationen, können wir da bei kaum helfen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#9

AW: Was könnte die Funktion Now: TDateTime; blockieren?

  Alt 4. Sep 2010, 21:12
Das ist übrigens der Code von Now in Delphi 7:

Delphi-Quellcode:
var
  SystemTime: TSystemTime;
begin
  GetLocalTime(SystemTime);
  with SystemTime do
    Result := EncodeDate(wYear, wMonth, wDay) +
      EncodeTime(wHour, wMinute, wSecond, wMilliseconds);
end;
Ich tippe da auch auf eine zusätzliche Deklaration von Now im aktuellen Scope. Vielleicht hilft eine Suche über alle Dateien des Projekts? Alternativ geht auch der qualifizierte Aufruf:

DateTimeToStr(Sysutils.Now)
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#10

AW: Was könnte die Funktion Now: TDateTime; blockieren?

  Alt 4. Sep 2010, 21:39
Ich tippe da auch auf eine zusätzliche Deklaration von Now im aktuellen Scope. Vielleicht hilft eine Suche über alle Dateien des Projekts?
Wozu?

Strg+Linksklick auf dieses "Now" und man sieht wohin es geht,
oder einfach mal den Mauszeiger 'nen Sekündchen drüberhalten und in den Hint gucken.

Eigentlich bekommt das Code-Insight dieses noch hin,
aber notfalls kann man auch mal Debuggen und schauen was passiert.


Bevor ich meinen Code mit 'nem Namespace verschandel, schau ich erstmal warum da was vorliegt, welches mich nervt.
Vorallem wenn man nicht weiß daß da wirklich ein "falsches" Now rumliegt, dann kann was nicht stimmen, da man eigentlich wissen sollte was wo in seinem Programm ist.
$2B or not $2B

Geändert von himitsu ( 4. Sep 2010 um 21:41 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 01:49 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