Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Normales Datums-Editfeld ist leer - wie abfragen? (https://www.delphipraxis.net/181874-normales-datums-editfeld-ist-leer-wie-abfragen.html)

LingNeu 14. Sep 2014 11:36

Normales Datums-Editfeld ist leer - wie abfragen?
 
Hallo zusammen,
habe ein Eingabefeld (kein Datenbankfeld) welches ein Datum aufnimmt.
Nun möchte ich gerne im Programm abfragen, ob dieses Editfeld leer ist.

Folgenden Code habe ich probiert, leider klappt das nicht. Obwohl das EditFeld leer ist, kommt die Message.
Verwende ich ein Datenbankfeld, dann geht es.

Delphi-Quellcode:
if not VarIsNull(gebdatum.Date) then begin
   ShowMessage('nicht leer');
end;
Bitte um Hilfe, wo ich noch ansetzen kann.
Gruss Lingneu

DeddyH 14. Sep 2014 11:44

AW: Normales Datums-Editfeld ist leer - wie abfragen?
 
Delphi-Quellcode:
if trim(Edit.Text) <> '' then
  ShowMessage('Nicht leer');
oder hab ich da was falsch verstanden?

LingNeu 14. Sep 2014 12:04

AW: Normales Datums-Editfeld ist leer - wie abfragen?
 
@DeddyH
danke für den Tip. Leider klappt es so noch nicht. Ich verwende ein DateEdit von DevExpress.

Ich hab mir jetzt das Ergebnis mit Showmessage(DateToStr(gebdatum.date)) anzeigen lassen, da bekomme ich '00.00.0000'

Momentan hab ich mir jetzt so geholfen...

Delphi-Quellcode:
if DateToStr(gebdatum.date) <> '00.00.0000' then begin
   //mach was
end;
Ob das gut ist, wird sich zeigen.
Danke nochmals
LingNeu

sx2008 14. Sep 2014 12:08

AW: Normales Datums-Editfeld ist leer - wie abfragen?
 
Delphi-Quellcode:
if gebdatum.Date > 1.0 then begin
   ShowMessage('nicht leer');
end;
Die DateTimePicker Komponente hat einen Bug; im Property
Delphi-Quellcode:
Date
ist auch die aktuelle Zeit im Nachkommateil enthalten.
Deshalb muss man auf > 1 abfragen (wo normalerweise > 0 gereicht hätte).

DeddyH 14. Sep 2014 12:10

AW: Normales Datums-Editfeld ist leer - wie abfragen?
 
Ich kenne die Komponente zwar nicht, aber sie scheint ihren Inhalt selbst in ein Datum umzuwandeln, im Fehlerfall dann eben den 0.0.0000. Falls es intern keine andere Möglichkeit gibt (DateIsEmpty oder etwas in der Art), würde ich dann aber keinen Stringvergleich machen, sondern das Datum selbst auswerten.
Delphi-Quellcode:
var
  Year, Month, Day: Word;
begin
  DecodeDate(gebdatum.date, Year, Month, Day);
  if (Year = 0) and (Month = 0) and (Day = 0) then
    ...//leeres Datum oder tatsächlich der Anfang unserer Zeitrechnung
end;

Dejan Vu 14. Sep 2014 13:00

AW: Normales Datums-Editfeld ist leer - wie abfragen?
 
DevExpress sollte diverse Eigenschaften haben, die den Wert im Editfeld beschreibt. Dazu gehören (aus dem Gedächtnis)
Text/Value/Date, EditValue, EditText, EditingValue, EditingText.

Text/Value/Date bezeichnet (eigentlich) immer den Wert im Datentypen, der dem Eingabefeld entspricht, also String, Date, Numerisch etc.

EditValue und EditText ist die Repräsentation als Variant bzw. String, die dem gespeicherten Wert des Eingabefeldes entspricht und EditingValue/Text entspricht dem Wert, so wie man ihn im EingabeFeld gerade sieht. Dieser Unterschied ist nur während der Eingabe in den einzelnen Events sichtbar, aber dafür dort umso praktischer.

Ich würde also den Wert von 'EditValue' oder 'EditText' prüfen.

jensw_2000 14. Sep 2014 13:52

AW: Normales Datums-Editfeld ist leer - wie abfragen?
 
Man kann in den cxDateEdit Properties auch irgendwo festlegen was als NULL Value verwendet werden soll.
Wenn Du das entsprechend konfigurierst, dann kannst Du auf "if not assigned(myDateEdit.EditValue)" prüfen ..
Kann gerade nicht schauen, aber diese Einstellungen war imho nicht zu sehr versteckt ...

dataspider 15. Sep 2014 14:20

AW: Normales Datums-Editfeld ist leer - wie abfragen?
 
Hi,

cxDateUtils in Uses und auf NullDate abfragen...

Delphi-Quellcode:
  if (cxDateEdit.EditValue = NullDate) ...
Frank


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