Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Datumseingabe Begenzen (https://www.delphipraxis.net/141136-datumseingabe-begenzen.html)

Kunoishi 3. Okt 2009 11:04


Datumseingabe Begenzen
 
Ein Hallo an alle !! und wieder mal ein problemchen

Ich habe ein Datumsfeld in Form von „TDateTimePicker“ und möchte verhindern,
dass die Möglichkeit besteht ein Datum auszuwählen bzw. einzugeben das nach dem
aktuellem Datum liegt.
Nach der Eingabe sollte dann über Showmessage die Info ausgegeben werden, dass die Eingabe nicht richtig ist wenn das Datum nach dem aktuellen Wert liegt.

Dazu hatte ich vollgende Idee, welche aber nicht so klapt

Delphi-Quellcode:
procedure TSachverhaltForm.datumExit(Sender: TObject);
var l,b,u:real;
begin
 Try
  l:=strtofloat(datum.Date);
 Except
   Showmessage('Eingabefehler: Sie können kein Datum angeben das nach dem Aktuellen Datum liegt !');
   l := 01.01.2001;
   datum.Date := '01.01.2001';
 end;
  u:=l>b;
  datum.Date := FloattostrF (u,ffGeneral,6,0);
  datum.setfocus
end;
Ich glaube ich habe da wieder mal ein falschen Ansatz

Matze 3. Okt 2009 11:11

Re: Datumseingabe Begenzen
 
Hallo

Delphi-Quellcode:
l := 01.01.2001;
Eine Gleitkommazahl hat max. 1 Kommastelle. Also da wird es schon krachen.

Delphi-Quellcode:
if Datum.Date < Now then
 // Datum liegt in der Vergangenheit
Müsste klappen.

Kunoishi 3. Okt 2009 11:19

Re: Datumseingabe Begenzen
 
daran hatte ich garnicht gedacht
Danke

werde ich gleich nach dem Essen ausprobieren
mfg

DeddyH 3. Okt 2009 11:36

Re: Datumseingabe Begenzen
 
Was spricht gegen
Delphi-Quellcode:
DateTimePicker.MaxDate := date;
:?:

Kunoishi 3. Okt 2009 11:59

Re: Datumseingabe Begenzen
 
irgend wie stehe ich auf der Leitung oder besser auf dem Bit.
:wall:

Kunoishi 3. Okt 2009 12:14

Re: Datumseingabe Begenzen
 
Knoten geplatzt, danke an euch :bouncing4:

ich habe das Problem so jetzt so gelöst
Delphi-Quellcode:
procedure TProbeForm.DatumExit(Sender: TObjct);
begin
  if Datum.Date > Now Then
    begin
      showmessage(' Fehlerhafte Eingabe ');
      Datum.setfocus;
      exit;
    end;
  end;
danke an euch und euer Team

himitsu 3. Okt 2009 12:59

Re: Datumseingabe Begenzen
 
Im .OnCreate der Form hättest du auch einfach .MaxDate des DateTimePickers auf Now zu setzen brauchen, dann könnte man garnicht erst ein zukünftiges Datum auswählen. :angel2:

DeddyH 3. Okt 2009 13:08

Re: Datumseingabe Begenzen
 
Tja, ich werde ja auch ständig überlesen :| .

himitsu 3. Okt 2009 13:13

Re: Datumseingabe Begenzen
 
neee, ich hab dich diesesmal sogar gesehn :angel:

vorhin in der blöden RedBox, als ich das schonmal schreiben wollte :wall:
nja, und da er dich wohl übersah ...


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