Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Terminerrinerung ? (https://www.delphipraxis.net/54502-terminerrinerung.html)

Vader 5. Okt 2005 14:47


Terminerrinerung ?
 
hallo,

ich möchte gerne eine art terminerinnerung programmieren,das müßte so ausschauen:
wenn es der 05.10.2005 und 10:00 uhr ist dann sollte ein infofenster mit der errinnerung
kommen !

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin

if "datum und uhrzeit richtig"

then forminfo.show;

end;
mfg vader

hibbert 5. Okt 2005 14:51

Re: Terminerrinerung ?
 
versuchs mal mit
Delphi-Quellcode:
strtodate('27.01.1987');
date;
datetostr(now);
das gleiche geht auch mit time :wink:

hibbert

Vader 5. Okt 2005 15:17

Re: Terminerrinerung ?
 
hallo,

Delphi-Quellcode:
rocedure TForm1.FormCreate(Sender: TObject);
begin
if datetostr(now)
then forminfo.show;

end;
Delphi-Quellcode:
[Fehler] Unit1.pas(28): Ausdruckstyp muß BOOLEAN sein
mfg vader

Luckie 5. Okt 2005 15:21

Re: Terminerrinerung ?
 
Les dir in der Delphi Hilfe oder deinem Buch mal das Kapitel über Verzweigungen mit if durch.

Chegga 5. Okt 2005 16:43

Re: Terminerrinerung ?
 
Hi,

als erstes solltest du vielleicht das noch mal anschauen:
Verzweigungen

@ Topic:
Hier ein kleines Beispiel:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  If Date = StrToDate('05.10.2005')
  Then ShowMessage('Sharky always says: *blubb*');
end;
MfG Marc

PierreB 5. Okt 2005 16:53

Re: Terminerrinerung ?
 
Delphi-Quellcode:
procedure Form1.OnClick(Sender: TObject);
var
zeit : TTime;
datum : TDate;
begin
datum := StrToDate('05.10.2005');
zeit := TimeToStr('17:52:00');
if (TimeToStr(zeit) = TimeToStr(now)) and (DateToStr(datum) = DateToStr(now)) then infoform.Show;
end;

Nikolas 5. Okt 2005 17:04

Re: Terminerrinerung ?
 
Bei solchen Überprüfungen ist es sinnvoll, nicht auf '=' sondern auf '>' zu prüfen. Wenn der Rechner in dieser Sekunde grad viel zu tun hat und deswegen diese Zeile nicht ausführt, kann es gut passieren, dass der Termin verpasst wird.
Wenn du aber prüfst, ob der Termin in der Vergangenheit liegt, hast du o.g. Problem nicht. Wenn du nach der Form.show-Anweisung dann sagst, dass dieser Termin nicht mehr angezeigt werden soll, hast du auch keine Probleme damit, dass der Termin später unendlich oft angezeigt wird.

PierreB 5. Okt 2005 17:09

Re: Terminerrinerung ?
 
Zitat:

Bei solchen Überprüfungen ist es sinnvoll, nicht auf '=' sondern auf '>' zu prüfen
Delphi-Quellcode:
procedure Form1.OnClick(Sender: TObject);
var
zeit : TTime;
datum : TDate;
begin
datum := StrToDate('05.10.2005');
zeit := TimeToStr('17:52:00');
if (TimeToStr(zeit) <> TimeToStr(now)) and (DateToStr(datum) <> DateToStr(now)) then ShowMessage('Es st noch nicht soweit') else forminfo.show;
end;

Vader 5. Okt 2005 17:15

Re: Terminerrinerung ?
 
hallo PierreB,

der fehler kommt:

Delphi-Quellcode:
[Fehler] Unit1.pas(33): Inkompatible Typen: 'TDateTime' und 'String'

mfg vader

PierreB 5. Okt 2005 17:21

Re: Terminerrinerung ?
 
Zitat:

[Fehler] Unit1.pas(33): Inkompatible Typen: 'TDateTime' und 'String'
Delphi-Quellcode:
procedure Form1.OnClick(Sender: TObject);
var
zeit : TTime;
datum : TDate;
begin
datum := StrToDate('05.10.2005');
zeit := StrToTime('17:52:00');
if (TimeToStr(zeit) <> TimeToStr(now)) and (DateToStr(datum) <> DateToStr(now)) then ShowMessage('Es st noch nicht soweit') else forminfo.show;
end;
So sollte es jetzt gehen, ich sollte meine Sources vor dem Posten mal prüfen.
(Den Fehler hättest du aber auch selber beheben können) ;)

Nikolas 5. Okt 2005 17:28

Re: Terminerrinerung ?
 
Delphi-Quellcode:
datum := StrToDate('05.10.2005');
zeit := StrToTime('17:52:00');
Bei der Zeit hat sich nur der Befehl verdreht :)

// hat der rote Kasten Urlaub?

Was ich noch am Testen war: nicht eher > als <> ? Wenn man den Zeitpunkt verpasst hat, wird trotzdem 'zu früh' angezeigt !

PierreB 5. Okt 2005 17:48

Re: Terminerrinerung ?
 
Zitat:

Was ich noch am Testen war: nicht eher > als <> ?
Hm ? Nein. Er möchte ja wissen ob genau jetzt die Zeit & das Datum gleich ist, und nicht ob das Datum o. die Zeit vorbei ist oder noch ansteht. Hab das zwar nicht getestet, der Code von mir da oben sollte aber so gehen (Keine Gewähr :stupid: )

Vader 5. Okt 2005 18:14

Re: Terminerrinerung ?
 
hallo PierreB,

das schaut ja schon gut aus, mit dem datum funktioniert es, aber mit der zeit nicht ?

mfg vader

PierreB 5. Okt 2005 18:17

Re: Terminerrinerung ?
 
Zitat:

Zitat von Vader
hallo PierreB,

das schaut ja schon gut aus, mit dem datum funktioniert es, aber mit der zeit nicht ?

mfg vader

Also soweit ich das sehe müsste es eigentlich gehen. :gruebel:

Bist du sicher das du in der Zeit die du angegeben hast auch wirklich klickst ?
Wenn nicht pack meinen Code mal in den Timer, stell die Eigenschaft Interval auf 20 und warte ob es dann geht wenn die Zeit eintrifft.

tigerman33 5. Okt 2005 18:28

Re: Terminerrinerung ?
 
Das du das Datum mit "=" abprüfst ist ja okay. Aber zum Thema Zeit solltest du dir vielleicht doch nochmal den Post von Toxman durchlesen.

Vader 5. Okt 2005 19:02

Re: Terminerrinerung ?
 
hallo,

super jetzt geht's , bei der zeit hab ich < verwendet als = oder <> .

mfg vader


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