![]() |
TEdit-Feld MUSS einen Wert enthalten!!
Hi Leute, ich habe einige Edit-Felder in meinem Programm und bei einem möchte ich es so machen, dass der User aufgefordert wird, in dieses etwas zu schreiben.
Es ist ein TEdit-Feld, was auf eine Datenbank zugreift. In dieses Feld wird das Geburtstatum geschrieben. Wenn der User nun den Datensatz speichern möchte, dann soll überprüft werden, ob das TEdit3-Feld einen Wert enthällt oder nicht. Wenn kein Wert drinn steht, dann soll eine MessageBox erscheinen mit der Aufforderung, dass der User einen Geburtstag eingeben MUSS. Wie kann ich das machen? |
Wenn Edit1 keinen Text enthält, ist Edit1.Text ein Leerstring.
Also sieht das so aus:
Code:
if Edit.Text = '' then MessageDlg('Du hast keinen Wert eingegeben', mtError, mbOK, 0)
else begin //In Datenbank reinschreiben end; |
Und wenn ich das Datum nicht weiß, werde ich gezwungen was falsches rein zu schreiben? :roll:
|
Hi, danke für den code. Der funktioniert prima.
Es muß ein Geburtsdatum rein. Es handelt sich hierbei um eine Kundendatenbank. Da weiss man das Geburtsdatum. Es lässt sich nicht anders lösen, da sonst der Geburtstagsfilter nicht funktioniert! |
Stürzt der Filter ab, wenn er über ein leeres Feld gehen muß? dann würde ich den noch mal überarbeiten.
|
Hi, nein der Filter stürtz mir nicht ab.
Es ist so. Ich habe da einen Filter, der mir alle Personen anzeigt, die von Heute weg bis in einer Woche, Geburtstag haben. Wenn jetzt aber im Geburtstagsfeld kein Wert steht, dann kommt, wenn ich mir die Geburtstagskinder ansehen will, immer die Meldung: '2002' ist kein gültiges Datum. Und angezeigt bekomme ich dabei auch keine Geburtstagsliste. Darum wird das Feld benötigt. |
Wie wäre es mit einer Abfrage
Code:
Oder auch einem try-except-Block.
if Edit.Text = '' then ...
|
Hi, ich habe ja einen code zusammengeschnipselt:
Code:
So sieht der Code zur Zeit aus.
procedure TKundendaten.SpeichernClick(Sender: TObject);
begin if DBEdit38.Text = '' then MessageDlg('Sie haben das Geburtsdatum nicht eingetragen. Bitte tragen Sie jetzt ein Geburtsdatum ein!', mtError,[mbOK], 0) else try DM.ADOSHaupt.Post; //DM.ADOSHaupt.Refresh; except on exception do MessageDlg('Keinen Wert zum speichern gefunden oder der Datensatz wurde bereits gespeichert!', mtWarning,[mbOk],0); end end; Hast du da einen besseren vorschlag? |
Das ist aber nicht der Filter oder?
Wenn jemand kein Geburtsdatum einträgt dann, dann trag doch 01.01.1899 ein und beim Anzeigen der Datensätze filters du das mit einer if-Abfrage wieder raus, damit es nicht dargestellt wird. |
Klingt gut, nur wie mache ich das genau?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:43 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