![]() |
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:
Bitte um Hilfe, wo ich noch ansetzen kann.
if not VarIsNull(gebdatum.Date) then begin
ShowMessage('nicht leer'); end; Gruss Lingneu |
AW: Normales Datums-Editfeld ist leer - wie abfragen?
Delphi-Quellcode:
oder hab ich da was falsch verstanden?
if trim(Edit.Text) <> '' then
ShowMessage('Nicht leer'); |
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:
Ob das gut ist, wird sich zeigen.
if DateToStr(gebdatum.date) <> '00.00.0000' then begin
//mach was end; Danke nochmals LingNeu |
AW: Normales Datums-Editfeld ist leer - wie abfragen?
Delphi-Quellcode:
Die DateTimePicker Komponente hat einen Bug; im Property
if gebdatum.Date > 1.0 then begin
ShowMessage('nicht leer'); end;
Delphi-Quellcode:
ist auch die aktuelle Zeit im Nachkommateil enthalten.
Date
Deshalb muss man auf > 1 abfragen (wo normalerweise > 0 gereicht hätte). |
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; |
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. |
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 ... |
AW: Normales Datums-Editfeld ist leer - wie abfragen?
Hi,
cxDateUtils in Uses und auf NullDate abfragen...
Delphi-Quellcode:
Frank
if (cxDateEdit.EditValue = NullDate) ...
|
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