Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   IncDay bewirkt Programmabsturz (https://www.delphipraxis.net/137510-incday-bewirkt-programmabsturz.html)

LuCSteR 22. Jul 2009 11:29


IncDay bewirkt Programmabsturz
 
Hi,

ahbe folgenden Code:

Delphi-Quellcode:
Var
  iDays: integer
  dFutureDate: TDateTime;

Begin
  //Anz. Tage die add werden sollen
  iDays:=strtoint(Form1.Edit1.Text);

  //Datumsformat festlegen
  ShortDateFormat:= 'dd.mm.yyyy';
  DateSeparator:= '.';

  //sValueDate liegt im Format dd.mm.yyyy als String vor
  dFutureDate:=strtodatetime(sValue1Date);

  //solange iDays aufaddieren bis dFutureDay>HeutigerTag
  repeat IncDay(dFutureDate, iDays);
  until dFutureDate>now;

  //Ausgabe in ListBox1
  Form1.ListBox1.Items.Add(datetimetostr(dFutureDate));
End;
Auch wenn der Starttag iwann 2006 ist, sollte das doch meinen aktuellen Rechner nicht zum Absturz bringen, oder?
Stimmen die Datentypen/-umwandlungen etc? Nutze diese Funktionen zum ersten Mal.

Grüße LuCSteR

Klaus01 22. Jul 2009 11:43

Re: IncDay bewirkt Programmabsturz
 
.. liefert denn StrToDateTime nicht einen Dezimalbruch?

inc(Dezimalbruch,wert) funktioniert nun mal nicht.

Eine normale Additon sollte hingegen funktionieren.

Klaus, vorher (richtig) lesen und dann antworten.

Grüße
Klaus

angos 22. Jul 2009 11:46

Re: IncDay bewirkt Programmabsturz
 
Zitat:

Zitat von LuCSteR
Hi,

ahbe folgenden Code:

Delphi-Quellcode:
Var
  iDays: integer
  dFutureDate: TDateTime;

Begin
  //Anz. Tage die add werden sollen
  iDays:=strtoint(Form1.Edit1.Text);

  //Datumsformat festlegen
  ShortDateFormat:= 'dd.mm.yyyy';
  DateSeparator:= '.';

  //sValueDate liegt im Format dd.mm.yyyy als String vor
  dFutureDate:=strtodatetime(sValue1Date);

  //solange iDays aufaddieren bis dFutureDay>HeutigerTag
  repeat
    //IncDay(dFutureDate, iDays);
    dFutureDate := IncDay(dFutureDate, iDays);
  until dFutureDate>now;

  //Ausgabe in ListBox1
  Form1.ListBox1.Items.Add(datetimetostr(dFutureDate));
End;
Auch wenn der Starttag iwann 2006 ist, sollte das doch meinen aktuellen Rechner nicht zum Absturz bringen, oder?
Stimmen die Datentypen/-umwandlungen etc? Nutze diese Funktionen zum ersten Mal.

Grüße LuCSteR

Bugfix eingabut ;) Incday gibt dir den neuen Datumswert zurück, aber du musst natürlich auch ne Variable damit füllen

Gruß
Ansgar

LuCSteR 22. Jul 2009 11:50

Re: IncDay bewirkt Programmabsturz
 
Oh my God :D
Wie blind ich doch bin ^^
Warum meckert der Kompiler denn nich O_o

LuCSteR 22. Jul 2009 11:52

Re: IncDay bewirkt Programmabsturz
 
Bah, hängt sich trotzdem noch auf :(

<EDIT>
Mein Fehler, selbige Routine wird vorher schonmal aufgerufen. Funktioniert nun alles :)
</EDIT>

Luckie 22. Jul 2009 11:54

Re: IncDay bewirkt Programmabsturz
 
Was verstehst du denn jetzt eigentlich unter abstürzen oder aufhängen?

LuCSteR 22. Jul 2009 11:56

Re: IncDay bewirkt Programmabsturz
 
Das der Prozess nicht terminiert :) Tut er jetzt aber.

angos 22. Jul 2009 12:05

Re: IncDay bewirkt Programmabsturz
 
Zitat:

Zitat von LuCSteR
Warum meckert der Kompiler denn nich O_o

Na weil es keinen Grund gibt beim Aufrufen einer Funktion zu meckern. Der Compiler weiss ja nicht warum du die Funktion ausführst und ob du in dem Fall den Rückgabewert benötigst


Gruß
Ansgar


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:56 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