AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Pflichtfeld

Ein Thema von LOMBI · begonnen am 5. Apr 2005 · letzter Beitrag vom 6. Apr 2005
Antwort Antwort
LOMBI
(Gast)

n/a Beiträge
 
#1

Pflichtfeld

  Alt 5. Apr 2005, 15:57
Datenbank: Paradox7 • Zugriff über: DataSource
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]
  Mit Zitat antworten Zitat
Yadon

Registriert seit: 13. Feb 2004
110 Beiträge
 
Delphi 5 Enterprise
 
#2

Re: Pflichtfeld

  Alt 5. Apr 2005, 16:04
Delphi-Quellcode:

if Trim(DBEdit1.Text) = ''
then begin
  ShowMessage('Pflichtfeld');   
  DBEdit1.SetFocus;
  Exit;
end;
Yadon
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Pflichtfeld

  Alt 5. Apr 2005, 16:05
Hai LOMBI,

eigentlich sollte es ja so ausreichen:
Delphi-Quellcode:
procedure TForm1.DBEdit1Exit(Sender: TObject);
begin
 if (DBEdit1.Text = '') then
 begin
   ShowMessage ('Pflichtfeld');
   DBEdit1.SetFocus;
 end;
end;
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.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.354 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Pflichtfeld

  Alt 5. Apr 2005, 16:16
Zitat von Sharky:
Hai LOMBI,

eigentlich sollte es ja so ausreichen:
Delphi-Quellcode:
procedure TForm1.DBEdit1Exit(Sender: TObject);
begin
 if (DBEdit1.Text = '') then
 begin
   ShowMessage ('Pflichtfeld');
   DBEdit1.SetFocus;
 end;
end;
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.
Bist du dir sicher Sharky? Wie sieht es mit dem DBNavigator aus? Oder SpeedButtons? Die bekommen iirc keinen Focus. Damit könnte das OnExit nicht ausgelöst werden!
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.
Peter
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Pflichtfeld

  Alt 5. Apr 2005, 16:22
Zitat von Jasocul:
...Bist du dir sicher Sharky? Wie sieht es mit dem DBNavigator aus? Oder SpeedButtons? ...
Erwischt.
Mit dem DBNavigator arbeite ich nie und die SpeedButtons habe ich vergessen

Also:
Doch eine prüfung in das BeforPost.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
LOMBI
(Gast)

n/a Beiträge
 
#6

Re: Pflichtfeld

  Alt 5. Apr 2005, 16:59
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
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#7

Re: Pflichtfeld

  Alt 5. Apr 2005, 17:22
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;
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.354 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Pflichtfeld

  Alt 5. Apr 2005, 18:10
Was shmia da so dezent andeuten will, ist, dass du dann im OnExit und im OnBeforePost prüfen musst!
Peter
  Mit Zitat antworten Zitat
LOMBI
(Gast)

n/a Beiträge
 
#9

Re: Pflichtfeld

  Alt 6. Apr 2005, 11:25
Genau diese Prüfung ist das Problem.
Wie läßt sich die im onExit und BeforePost durchführen?

Gruß
Lombi
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.354 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Pflichtfeld

  Alt 6. Apr 2005, 12:16
Indem du den Prüfcode in beide Routinen einbaust oder eine Funktion schreibst, die von beiden aufgerufen wird.
Peter
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:10 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