AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Probleme mit Now()

Ein Thema von Sphinx2k · begonnen am 15. Mai 2009 · letzter Beitrag vom 14. Mär 2011
Antwort Antwort
Seite 1 von 2  1 2      
Sphinx2k

Registriert seit: 13. Mai 2009
6 Beiträge
 
#1

Probleme mit Now()

  Alt 15. Mai 2009, 10:41
Ich hab gerade ein sehr sehr merkwürdiges Problem.
In meinem Programm wird ein Datei umbenannt nach Datum+Zeit. Nachdem ich jetzt dem fehler nachgespührt habe der vorhanden ist bin ich bei Now angekommen.
Das ganze hat auch schon ganz zu Anfang funktioniert...gehe ich in eine Version die ein paar Tage älter ist funktionert es dort mit dem gleichen Code und was ich geändert habe dürfte an sich keinen einflüss darauf haben was mir Now() liefert.
Now liefert mir immer die selbe Zeit zurück, selbst wenn ich das Programm beende und neu Starte, es neu Compiliere,.... Nach einigen Minuten wird dann eine neue Zeit ausgelesen und diese bleibt für X Minuten immer die selbe.

Hat jemand eine Idee woran das liegen konnte?

Delphi-Quellcode:
procedure TForm1.SpeedButton3Click(Sender: TObject);
var
  DName: String;
  Jahr,Monat,Tag, Stunde, Minute, Sekunde, MSekunde: Word;
  Jetzt: TDateTime;
begin
  Jetzt:=Now();
  if OpenPictureDialog1.Execute() then begin
    DecodeDate(Jetzt,JAhr,Monat,Tag);
    DecodeTime(Jetzt,Stunde,Minute,Sekunde,MSekunde);
    DName:='temp\'+IntToStr(Jahr)+IntToStr(Monat)+IntToStr(Tag)+IntToStr(Stunde)+
           IntToStr(Minute)+IntToStr(Sekunde)+IntToStr(MSekunde)+'.jpg';
    DateiNeuPfad:=ExtractFilePath(Application.ExeName)+DName;
    Copyfile(PCHAR(OpenPictureDialog1.FileName), PCHAR(DateiNeuPfad), false);
  end;
end;
[edit=mkinzler]Zeilenumbruch in Quelltext eingefügt Mfg, mkinzler[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Probleme mit Now()

  Alt 15. Mai 2009, 10:52
Was sagt deine Windows-Zeitangabe? Now verwendet die WinAPI-Funktion GetLocalTime. Es müsste also in Windows was "kaputt" sein.
Außer du hast irgendwo eine eigene Now-Funktion definiert die verwendet wird.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Probleme mit Now()

  Alt 15. Mai 2009, 11:10
Außerdem kann man die Namensvergabe noch kürzen.DName := Format('%s%s%s',['temp\',FormatDateTime('yyyymmddhhnnsszzz',Now),'.jpg']);
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
Sphinx2k

Registriert seit: 13. Mai 2009
6 Beiträge
 
#4

Re: Probleme mit Now()

  Alt 15. Mai 2009, 11:43
Eine andere Now Funktion gibt es nicht wie evtl. Probleme verursachen könnte.
Das Windows ein Problem hat glaube ich auch nicht da die 2 Tage alte Version noch funktioniert und seit dem habe ich nur die Zeichenfunktionen von Paintbox.canvas auf Andorra 2D umgestellt.
Es bleibt weiterhin Rätselhaft warum es nicht funktioniert. Hab jetzt noch mal einen Random Wert in den Dateinamen mit reingepackt der umschifft das Problem etwas, aber es bleibt trotzdem eine Fehlerquelle die ich gerne ausmerzen möchte.

Die Format Funktion war mir noch nicht bekannt damit sieht es doch gleich ordenlticher aus. Danke.
  Mit Zitat antworten Zitat
ToFaceTeKilla

Registriert seit: 17. Mai 2006
Ort: Leipzig
283 Beiträge
 
Delphi XE2 Professional
 
#5

Re: Probleme mit Now()

  Alt 15. Mai 2009, 11:57
Mit welcher Delphiversion arbeitest du denn?
Bin zwar kein Experte, aber ich kann dir sagen, dass zb Delphi 6 öfters zu unerklärlichem Verhalten neigt.
Im Zweifelsfall hat ein Reboot bei mir bis jetzt immer geholfen...
Billy Gerwitz
"Bei der Softwareentwicklung suchen wir nicht den richtigen Weg, sondern den am wenigsten falschen." - frei nach V. Hillmann
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Probleme mit Now()

  Alt 15. Mai 2009, 12:05
Häng mal FastMM und andere Checktools rein. Ich denke das deine Umstellungsarbeit einige wild gewordene Zeiger hinterlassen hat.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#7

Re: Probleme mit Now()

  Alt 15. Mai 2009, 14:53
Zitat von Sphinx2k:
Eine andere Now Funktion gibt es nicht wie evtl. Probleme verursachen könnte.
Nun, als Programmierer hat man manchmal Tomaten auf den Augen.
Du musst dir also erst einmal selbst beweisen,
dass du mit der Aussage "Eine andere Now Funktion gibt es nicht" Recht hast.
Zwei Möglichkeiten:
1.) Bei gedrückter Strg-Taste im Sourcecode auf das Wort Now klicken.
Nun müsste sich die Unit SysUtils öffnen und zur Deklaration der Funktion springen.
Das klappt nur ab Delphi Prof. und höher; also wenn der VCL Sourcecode vorhanden ist
2.) angeben, dass die Unit SysUtils verwendet werden soll:
Delphi-Quellcode:
var Jetzt: TDateTime;
begin
  Jetzt:=SysUtils.Now();
Du kannst dich darauf verlassen, dass SysUtils.Now fehlerfrei funktioniert.

Im nächsten Schritt beweisst du dir selbst, dass sich die Uhrzeit ändert:
Delphi-Quellcode:
var Jetzt: TDateTime;
begin
  Jetzt:=SysUtils.Now();
  ShowMessage(DateTimeToStr(Jetzt));
Du wirst sehen, dass die Uhrzeit richtig ist.
Dann nimmst du die Verbesserung aus Beitrag #3 und lässt dir den Dateinamen vorher anzeigen:
Delphi-Quellcode:
procedure TForm1.SpeedButton3Click(Sender: TObject);
var
  DName: String;
  Jetzt: TDateTime;
begin
  if OpenPictureDialog1.Execute() then
  begin
    Jetzt:=SysUtils.Now();
    DName := Format('%s%s%s',['temp\',FormatDateTime('yyyymmddhhnnsszzz', Jetzt),'.jpg']);
    DateiNeuPfad:=ExtractFilePath(Application.ExeName)+DName;
    ShowMessage(DateiNeuPfad); // <====== zum Testen anzeigen
    Copyfile(PCHAR(OpenPictureDialog1.FileName), PCHAR(DateiNeuPfad), false);
  end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Probleme mit Now()

  Alt 15. Mai 2009, 15:02
Und auf die Variable Jetzt kann man ganz verzichten.
Delphi-Quellcode:
procedure TForm1.SpeedButton3Click(Sender: TObject);
var
  DName: String;
begin
  if OpenPictureDialog1.Execute() then
  begin
    DName := Format('%s%s%s',['temp\',FormatDateTime('yyyymmddhhnnsszzz', SysUtils.Now),'.jpg']);
    DateiNeuPfad:=ExtractFilePath(Application.ExeName)+DName;
    ShowMessage(DateiNeuPfad); // <====== zum Testen anzeigen
    Copyfile(PCHAR(OpenPictureDialog1.FileName), PCHAR(DateiNeuPfad), false);
  end;
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 Mikescher
Mikescher

Registriert seit: 3. Jun 2008
Ort: Offenburg
265 Beiträge
 
Delphi 2009 Professional
 
#9

Re: Probleme mit Now()

  Alt 15. Mai 2009, 15:21
Klopft mal einer auf'n Server bei mir spinnt die Seite

MfG Mikescher
Mike
Operation gelungen, Patient tot.

http://www.mikescher.com
  Mit Zitat antworten Zitat
Benutzerbild von igel457
igel457

Registriert seit: 31. Aug 2005
1.622 Beiträge
 
FreePascal / Lazarus
 
#10

Re: Probleme mit Now()

  Alt 15. Mai 2009, 15:53
Schau dir mal die "SimpleText" Demo von Andorra an. Dort hatte ich (glaube ich) genau das gleiche Problem. Ich glaube, dass Now nicht Funktioniert hat, sondern nur Date und Time (Now = Date + Time) und das eventuell nicht in OnIdle, sondern nur in einem Timer-Event.
Andreas
"Sollen sich auch alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen, und nicht mehr davon geistig erfasst haben als die Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst." - Albert Einstein
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 21:53 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