![]() |
Abfrage: Wenn ein Datum in der Zukunft liegt
Ich habe ein Problem. :cry: Ich möchte eine Abfrage zu einem DateTimePicker machen. Genau: Ich möchte wissen ob das Datum im DateTimePicker noch gegenüber dem Jeztdatum in der Zukunft liegt. Ich habe es so Ausprobiert:
Delphi-Quellcode:
aber irgendwie bekomme ich die Fehlermeldung immer *HILF* :gruebel:
if ddatum.Date > Date then
if MessageDlg('Achtung! Das Ausgewählte Datum liegt noch in der Zukunft. '+#13+#10+'wählen Sie Ja um das Datum trotzdem zu übernähmen oder '+#13+#10+'Nein um das Datum zu ändern und dann erst die Buchung '+#13+#10+'durchzuführen.', mtWarning, [mbYes,mbNo], 0) = mrNo then Hat jemand eine :idea: ? |
Re: Abfrage: Wenn ein Datum in der Zukunft liegt
Zitat:
[edit] achso, jetzt habsch's b verstanden :wall: nimm mal Now, statt Date, oder runde ddatum.Date ab [trunc(ddatum.Date)] Denn in Date steht wirklich nur das Datum, aber in ddatum.Date ist das Datum und die Uhrzeit drin Date < (aktuelles Datum) + (die Uhrzeit, welche im DateTimePicker ebenfalls angegeben ist ... bei dir vermutlich die Uhrzeit, als dein DateTimePicker initialisiert wurde) |
Re: Abfrage: Wenn ein Datum in der Zukunft liegt
Diese die erscheinen soll wenn das Datum noch in der Zukunft liegt... :lol:
Delphi-Quellcode:
if MessageDlg('Achtung! Das Ausgewählte Datum liegt noch in der Zukunft. '+#13+#10+'wählen Sie Ja um das Datum trotzdem zu übernähmen oder '+#13+#10+'Nein um das Datum zu ändern und dann erst die Buchung '+#13+#10+'durchzuführen.', mtWarning, [mbYes,mbNo], 0) = mrNo
|
Re: Abfrage: Wenn ein Datum in der Zukunft liegt
Hi JSB,
ich habs gerade getestet, und festgestellt dass die Meldung auch angezeigt wird, wenn ich das heutige Datum wähle. Das Problem hab ich gelöst, indem ich anstatt
Delphi-Quellcode:
folgendes geschrieben habe:
ddatum.Date > Date
Delphi-Quellcode:
.
Trunc(ddatum.Date) > Trunc(Date)
Wenn ich hingegen den 7.10. ausgewählt habe, so wurde der MessageBox-Aufruf übersprungen. Evtl. hast du einen anderen Fehler. Greetz alcaeus |
Re: Abfrage: Wenn ein Datum in der Zukunft liegt
Müsste auch so funzen:
Delphi-Quellcode:
if ddatum.Date > TDate(Now) then
|
Re: Abfrage: Wenn ein Datum in der Zukunft liegt
Also ich würde das einfach so machen...
Code:
if ddate.DateTime > Now then
begin // blah end; |
Re: Abfrage: Wenn ein Datum in der Zukunft liegt
genau ... aber Date braucht man nicht runden ;)
Begründung ist oben drin ^^ :wall: hatte deinen Kontext kurz nach'm Abschicken dann auch begriffen -.-'' |
Re: Abfrage: Wenn ein Datum in der Zukunft liegt
:? Der Sinn der Sache ist der: Ich darf als anwender den DateTimePicker vor dem Heutigem Datum in dem Heutigem Datum und nach dem Heutigem Datum stellen, nur soll ich wenn das Datum noch in der Zukunft liegt gewarnt werden und die Möglichkein haben wieder zurück zu gelangen. Deswegen: Die Meldung soll nur erscheinen wenn das Datum des DateTimePicker's nicht gestern, vorgestern ... (u.s.w in die Vergangenheit) und nicht heute sondern morgen, übermorgen... (u.s.w. in die Zukunft) ist.
Noch eine Frage zum letzten Komentar: Was erreiche ich mit:
Delphi-Quellcode:
Was ist da anders??? :?: :?:
Trunc(ddatum.Date) > Trunc(Date)
|
Re: Abfrage: Wenn ein Datum in der Zukunft liegt
Soll es denn die Möglichkeit geben, ein zukünftiges Datum einzugeben?? Sonst kannst du über die Eigenschaft MaxDate die Datumseingabe eines Datums aus der Zukunft überhaupt nicht zu erlauben!
|
Re: Abfrage: Wenn ein Datum in der Zukunft liegt
Liste der Anhänge anzeigen (Anzahl: 1)
Hi JSB,
das Trunc schneidet die Nachkommastellen ab. Im Anhang mal ein Vergleich. Das Problem ist, dass auch wenn man Date verwendet, immer noch die Nachkommastellen für die Zeit dabei sind. Nun nochmal eine Frage zum Problem: die MessageBox kommt also auch, wenn das Datum in der Vergangenheit liegt (also 8.10.2003)? Greetz alcaeus |
Re: Abfrage: Wenn ein Datum in der Zukunft liegt
Also, erstmal ist
Delphi-Quellcode:
das selbe, da Date wirklich nur das Datum liefert, aber
Trunc(ddatum.Date) > Trunc(Date)
//und Trunc(ddatum.Date) > Date DateTimePicker1.DateTime, DateTimePicker1.Date und DateTimePicker1.Time liefern alle das Selber, und zwar die komplette Zeit (Datum+Uhrzeit) und durch Trunc wird halt der Uhrzeit-Anteil abgeschnitten. Aufbau von TDate, TTime und TDateTime siehe ![]() |
Re: Abfrage: Wenn ein Datum in der Zukunft liegt
Nein, nur in der Zukunft kommt die MessageBox. Heute und gestern nicht...
aber hab problem gelößt, danke!!! :cheers: :hello: :dancer: |
Re: Abfrage: Wenn ein Datum in der Zukunft liegt
Auf neues Problem gestoßen: :wall:
Delphi-Quellcode:
Die Messagebox kommt zwar aber wenn ich Ja sage passiert nicht das was zwischen dem letzten begin und end; steht (hier also: XXXXXX). Was mache ich falsch?? :?: :?:
if ddatum.Date > TDate(Now) then
begin if MessageDlg('Achtung! Das Ausgewählte Datum liegt noch in der Zukunft. '+#13+#10+'Bitte wählen Sie Ja um das Datum trotzdem zu übernähmen '+#13+#10+'oder Nein um das Datum zu ändern und dann erst die '+#13+#10+'Buchungdurchzuführen.', mtWarning, [mbYes,mbNo], 0) = mrNo then dDatum.SetFocus; end else begin XXXXXXX end; |
Re: Abfrage: Wenn ein Datum in der Zukunft liegt
stell dir das mal ein bissl um und du siehst, warum es so ist :zwinker;
Delphi-Quellcode:
if ddatum.Date > TDate(Now) then begin
if MessageDlg = mrNo then dDatum.SetFocus; end else begin XXXXXXX end; wenn du willst, dass das nach dem Else mit zur MessageDlg-Abfrage gehört, dann:
Delphi-Quellcode:
if ddatum.Date > TDate(Now) then
if MessageDlg = mrNo then dDatum.SetFocus else begin XXXXXXX end; |
Re: Abfrage: Wenn ein Datum in der Zukunft liegt
Dake alles klappt!!! :-D :-D
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:02 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