Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Termin vorher ansagen :) (https://www.delphipraxis.net/33786-termin-vorher-ansagen.html)

Red_Wraith 12. Nov 2004 14:28


Termin vorher ansagen :)
 
Hi !

Ich will einen ganz normalen Terminreminder bauen, nur will ich, dass dieser zum Beispiel 3 Tage vorher schon erinnert.

Bin bisher soweit gekommten:

Delphi-Quellcode:
procedure TForm1.TestbuttonClick(Sender: TObject);
var
Datum: String;

begin
   If StrToDate(Datum) = Now then
   begin
      ShowMessage('Reminder');
   end;
end;
Jetzt will ich aber, dass der nicht erst Now anspringt, sondern 2 tage vor Now :)

alcaeus 12. Nov 2004 14:29

Re: Termin vorher ansagen :)
 
Hi Red_Wraith,

Delphi-Quellcode:
procedure TForm1.TestbuttonClick(Sender: TObject);
var
Datum: String;

begin
   If StrToDate(Datum) = Now+2 then
   begin
      ShowMessage('Reminder');
   end;
end;
Greetz
alcaeus

Matze 12. Nov 2004 14:30

Re: Termin vorher ansagen :)
 
Zitat:

Zitat von alcaeus
If StrToDate(Datum) = Now+2 then...

Sicher, dass es "plus 2" ist, ich hätte auch "minus 2" getippt.

CReber 12. Nov 2004 14:32

Re: Termin vorher ansagen :)
 
Explizit genommen so ;) Spart Platz :)

Delphi-Quellcode:
procedure TForm1.TestbuttonClick(Sender: TObject);
  var Datum : string;
begin
   if StrToDate(Datum) = DateOf(Now-2) then
     ShowMessage('Reminder');
end;

Steve 12. Nov 2004 14:38

Re: Termin vorher ansagen :)
 
Hi,

Trunc(now-2) bzw DateOf(Now-2), sonst wirds nur um Mitternacht stimmen, weil die Zeitkomponente noch im TDateTime-Wert enthalten wäre...

Gruß
Stephan :dance:

Red_Wraith 12. Nov 2004 14:48

Re: Termin vorher ansagen :)
 
Danke schonmal...

Ein Problem hab ich aber noch.
Der Code so funktioniert nicht, also hab ich ihn mal darauf vereinfacht:

Delphi-Quellcode:
  If DateTimePicker1.Date = Now then
  begin
  ShowMessage('Remind Me !');
  end;

Allerdings funktioniert das nicht, obwogl die beiden wohl dasselbe Datum haben.
Kann es sein, dass Now nach Datum und Zeit checked ? Da stand es ist ein TDateTime...

Gibts ne Möglichkeit, wie ich nur nach dem Datum checke ?

alcaeus 12. Nov 2004 14:50

Re: Termin vorher ansagen :)
 
Hi Red_Wraith,

du könntest es so machen:

Delphi-Quellcode:
if Trunc(DateTimePicker1.Date) = Trunc(Now) then
begin
  ShowMessage('Remind Me !');
end;
Erklärung: Trunc schneidet alles nach dem Komma ab, was bei TDateTime die Zeitangabe ist.

Greetz
alcaeus

Red_Wraith 12. Nov 2004 14:58

Re: Termin vorher ansagen :)
 
aah danke, so funktionierts :)

Red_Wraith 12. Nov 2004 15:34

Re: Termin vorher ansagen :)
 
Das Spiel mit dem Datum geht weiter... Und langsam wirds peinlich...


Ich muss das Datum aus einer Datenbank mit der If Procedure von vorhin vergleichen.

Benutzte eine ADOQuery und einen DBGrid.

Habs mit For i := 0 to ADOQuery1.IndexFieldCount -1 do versucht, bin dann aber nicht weitergekommen.

ihrgendeiner ne idee ? Muss das Feld Datum komplett mit Trunc(Now) vergleichen...

Chris1986 12. Nov 2004 16:09

Re: Termin vorher ansagen :)
 
Hi,
mit ADOQuery kenn ich mich nicht genau aus. Aber eine DB durschläuft/durchsucht man mit einer Query-Komponente eigentlich immer so: (wenn man die Abfrage nicht mit SQL löst)
Delphi-Quellcode:
Query.first
while not Query.eof do
begin
  if Query.fieldbyname('deinZeitfeld').AsDateTime = now //etc.
    then . . .;
  Query.next;
end;
Aber das hat ja jetzt nichts mehr mit deiner eigentlichen Frage zu tun. Mach besser für jede Frage einen neuen Thread auf, dann kann dir schneller geholfen werden.

MfG
Christian


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:04 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz