![]() |
Datenbank: Paradox7 • Zugriff über: DataSource
Pflichtfeld
Hallo,
auf einer Form habe ich ein DBEdit als Pflichtfeld. Wie bitte erreiche ich, dass im Insert-Modus der Focus solange im Feld verbleibt, bis dort ein Eintrag gemacht wurde und erst dann weiter ins nächste Eingabefeld springt? Mit meiner if-Abfrage im onExit/BeforePost habe ich nicht den gewünschten Erfolg bzw. es fehlt noch etwas Wesentliches ...
Delphi-Quellcode:
?
if DBEdit1.Text=''then
begin ShowMessage('Pflichtfeld'); DBEdit1.SetFocus; end else begin if DBEdit1.Text<>''then Wer hilft mir bitte? Besten Dank vorab! Gruß Lombi [edit=Sharky]Delphi-Tags gesetzt. Mfg, Sharky[/edit] |
Re: Pflichtfeld
Delphi-Quellcode:
if Trim(DBEdit1.Text) = '' then begin ShowMessage('Pflichtfeld'); DBEdit1.SetFocus; Exit; end; |
Re: Pflichtfeld
Hai LOMBI,
eigentlich sollte es ja so ausreichen:
Delphi-Quellcode:
Im .BeforPost ist es in diesem Fall nicht notwendig da ich ja keine Chance haben einen Speicher Button zu drücken oder (ausser mit einem Timer *g*) dafür sorgen kann das der Datensatz gespeichert wird.
procedure TForm1.DBEdit1Exit(Sender: TObject);
begin if (DBEdit1.Text = '') then begin ShowMessage ('Pflichtfeld'); DBEdit1.SetFocus; end; end; |
Re: Pflichtfeld
Zitat:
Ich glaube irgendwann hatte ich mal das Problem in einer meiner alten Anwendungen. Für den Fall, dass ich micht richtig erinnere, sollte die die Prüfung schon im BeforePost gemacht werden. Allerdings muss dann dort auch eine Exception ausgelöst werden, damit das Programm das Post nicht durchführt. |
Re: Pflichtfeld
Zitat:
Mit dem DBNavigator arbeite ich nie und die SpeedButtons habe ich vergessen :oops: Also: Doch eine prüfung in das BeforPost. |
Re: Pflichtfeld
Danke für die prompte Antwort.
Leider reicht es nicht, weil das Meldungsfenster nur einmal erscheint. Beim nächsten Mal kann das DBEdit auch ohne Eintrag und Hinweisfenster verlassen werden. Der Cursor aber soll solange im DBEdit verbleiben, bis tatsächlich etwas eingegeben wird und erst dann weiter ins nächste Feld springen. Wenn im Pflichtfeld nichts enthalten ist, muß bei jedem Exitversuch das Meldungs- fenster angezeigt werden. Gruß Lombi |
Re: Pflichtfeld
Delphi-Quellcode:
procedure TForm1.DBEdit1Exit(Sender: TObject);
begin if (DBEdit1.Text = '') then begin ShowMessage ('Pflichtfeld'); Abort; // "stille" Exception verhindert das Verlassen von DBEdit1 end; end; |
Re: Pflichtfeld
Was shmia da so dezent andeuten will, ist, dass du dann im OnExit und im OnBeforePost prüfen musst!
|
Re: Pflichtfeld
Genau diese Prüfung ist das Problem.
Wie läßt sich die im onExit und BeforePost durchführen? Gruß Lombi |
Re: Pflichtfeld
Indem du den Prüfcode in beide Routinen einbaust oder eine Funktion schreibst, die von beiden aufgerufen wird.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:59 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