Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi DBEdit Field validieren (https://www.delphipraxis.net/69926-dbedit-field-validieren.html)

bwolf 22. Mai 2006 15:01


DBEdit Field validieren
 
Hi all!

ich hab da mal wieder ein kleines Prob. bei dem ich eure Hilfe brauche...
Eigentlich ganz einfach - ich will den Input eines DBEdit fields überprüfen.

Bei 'normalen' Edit-Fields klappt es ja problemlos, ins 'onExit'-Event ein try-except-Block einzubinden und darin z.B zu prüfen, ob der eingegebene Text eine Zahl ist.

Bei DBEdit-Feldern allerdings habe ich das Problem, das bei einer ungültigen Eingabe zuerst der Fehler der Datenbankkomponente kommt, und nicht das 'onExit'-Event.

Ich hab hier schon ein Thema dazu gefunden, leider hat mir das nicht weiter geholfen.

Danke für euere Hilfe,
grüße ben

Hoshy 23. Mai 2006 09:20

Re: DBEdit Field validieren
 
Hier ein Ansatz, wie Du vielleicht weiterkommst...Allerdings würde ich ebenfalls eher zu "fertigen" Komponenten tendieren, als solche Sachen von Hand auszucodieren:

Im OnKeyPress fängst Du alle nicht numerischen Tasten ab, falls das DBEdit nur numerische Eingaben erlauben soll:

Delphi-Quellcode:
procedure TForm1.DBEdit1KeyPress(Sender: TObject; var Key: Char);
begin
 if not (Key in ['0'..'9','.',',']) then Key := #0;
end;
Im OnChange Event schließlich finden die Prüfungen statt, ob der eingegebene numerische Wert im Gültigkeitsbereich liegt:

Delphi-Quellcode:
procedure TForm1.DBEdit1Change(Sender: TObject);
begin
  if strtoint(DBEdit1.Text) > 500 then
  begin
    ShowMessage('Der eingegebene Wert ist ungültig!');
    dbEdit1.SelectAll;
  end;
end;
Mach was draus :wink:

Gruß
Andi


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:00 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 by Thomas Breitkreuz