Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Blitzfrage zum Datum


kingsusu - Mi 23.12.09 19:16
Titel: Blitzfrage zum Datum
Hey Leute,

eine Blitzfrage.

Wie kann ich diesen Satz in delphi ausdrücken.

Wenn das Datum in Maskedit - Datum heute = 0 dann Beep


lg

kingsusu


ub60 - Mi 23.12.09 19:26

Blitzantwort :lol: :lol: :
-DateToStr
-Now
-F1

ub60


kingsusu - Mi 23.12.09 19:30

Jo ich hab am ANfang so etwas ähnliches gemacht und zwar:

(Ich weiß dass das falsch ist)


Delphi-Quelltext
1:
2:
if now - datetostr(date) = 0 then
  Beep


Aber da will er - wie schon gesagt nicht^^


FinnO - Mi 23.12.09 19:32

da würde auch now - date reichen :P


iirc ist TDate ein double. Also könntest du isEqual gebrauchen ;)

Edit, die dritte: wie wäre es denn mit if Date = now then ...


kingsusu - Mi 23.12.09 19:34

Yeah das habe ich gebraucht! :) - ich dacht, dass ich das erst umwandeln muss.

Ich danke für diese Blitzantworten! :)


kingsusu - Mi 23.12.09 19:38

Ich hab jetzt das hier stehen:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
procedure TStopform.TimerDatumTimer(Sender: TObject);
begin
Date:= Now ;
lbdatum.Caption := datetostr(date) ;
if Datum.Checked  then
  if now - date = 0  then
  Beep
  end;


Das habe ich jetzt. Aber das Problem ist, dass es mir jede Sekunde anpiep. Ab dem Punkt, ab dem ich diese Checkbox anklicke.

Jetzt zu meiner frage - ich hab sie vor dem Editieren falsch gestellt:

Wie binde ich ein Editmask hier hinein, sodass wenn das eingetippte - now = 0 ist, dass es dann Beept.

Und wie kann ich das jetzt noch für die Zeit machen, sodass ich quasi einen Wecker habe?


FinnO - Mi 23.12.09 19:39

statt DateToStr halt DateTimeToStr...


elundril - Mi 23.12.09 20:52

naja, du setzt im Timer das Datum und 2 zeilen darunter überprüfst du ob datum = now ist. Natürlich ist es = now weil dein code keine sekunde braucht um ausgeführt zu werden. deswegen is jeder Timerinterval Datum = Now.

lg elundril


kingsusu - Mi 23.12.09 23:52

Ja da hast du wohl recht elundril.. und wie mach ich das, was ich will? ich grübel schon die ganze zeit...


kingsusu - Do 24.12.09 00:32

OK Neue methode! Neues Glück. :)

Ich mach das jetzt mit DateTimePicker!

Ich habe einen Datepicker und einen Timepicker.

Ich will sagen, dass wenn

Datepicker und Timerpicker = now, dann soll es Beepen.



Pickerzeit ist Datetimepicker (auf Zeit)
Pickerdatum ist Datetimepicker (auf Datum)


Für die Zeit nutze ich diesen Befehl!
- dieser klappt auch

Delphi-Quelltext
1:
2:
If TimeToStr(now) = TimeToStr(pickerzeit.Time)
 then showmessage ('Hey') ;


aber da ich will, dass ich nicht nur Zeit einstellen kann, auch Datum brauche ich - wie vorhin gesagt - ein befehl, dass es erst klingelt wenn Zeit und Datum mit NOW identisch sind.

Dieser befehl klappt leider nicht:


Delphi-Quelltext
1:
2:
if   DateToStr(now) = DateToStr(pickerzeit.Date) then
showmessage ('Date');


kann mir einer erklären wieso? :)


elundril - Do 24.12.09 04:51

weil du beim zweiten vielleicht statt PickerZeit vielleicht PickerDatum verwenden solltest? btw, es ist seeehr unschön das mit Strings zu überprüfen. Vielleicht fällt dir ja doch ne möglichkeit ein wie du das mit der DateTime-Variablen überprüfen kannst. ;)

lg elundril


kingsusu - Do 24.12.09 10:40

Super das habe ich gebraucht, danke elundril.

Das kommt davon, wenn man noch so spät programmiert^^.

user profile iconelundril hat folgendes geschrieben Zum zitierten Posting springen:
Vielleicht fällt dir ja doch ne möglichkeit ein wie du das mit der DateTime-Variablen überprüfen kannst. ;)


- weiß leider nicht wie sonst..ich saß schon lang genug dran, bis das endlich mal geklapptt hat! :D



Aber schon folgt die nächste Frage! :)


Delphi-Quelltext
1:
2:
If TimeToStr(now) = TimeToStr(pickerzeit.Time) and DateToStr(now) = DateToStr(pickerdatum.Date)
then showmessage ('Date');



wieso kann ich das nicht mit IF und AND machen?

lg


kingsusu - Do 24.12.09 11:13

OK Thema erledigt.

richtiger code:


Delphi-Quelltext
1:
2:
If (TimeToStr(now) = TimeToStr(pickerzeit.Time)) and (DateToStr(now) = DateToStr(pickerdatum.Date)  )
then showmessage ('Date');