Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Ereignisse von Edit Feldern abbrechen (https://www.delphipraxis.net/57907-ereignisse-von-edit-feldern-abbrechen.html)

Murdock 28. Nov 2005 15:42


Ereignisse von Edit Feldern abbrechen
 
Hallo Alle.

Ich stehe hier (ne sitze) gerade vor einem Problem welches ich einfach nicht beseitigen kann.
Es geht um folgendes.

Ich habe mehrere Edit felder ( ist aber auch egal ein reicht auch). Diese habe ich mit verschieden Ereignissen belegt wie zum Beispiel OnChange OnClick On Exit usw. Ich will damit erreichen, dass nur bestimmte Eingaben zulässig sind oder gemacht werden oder ähnliches. Jetzt mein Problem:
Solange ich noch kein Feld angesteuert habe ist alles in Ordnung doch bin ich erst einmal drauf habe ich mich selbst gefangen. Selbst wenn ich den Button abbrechen drücke überprüft er die Eingabe. Und dies möchte ich nicht. In diesem Fall soll er jegliche Prüfungen der Edit Felder sein lassen.

Ist dies möglich? Kann mir jemand weiter helfen?

Gruß Murdock

shmia 28. Nov 2005 16:30

Re: Ereignisse von Edit Feldern abbrechen
 
Ich würde alle Prüfungen beim Klick auf den OK-Button durchführen.
Die Procedure ControlError setzt den Fokus auf das Control, das Ärger macht,
und erzeugt eine passende Fehlermeldung.
Benutzer kann korrigieren oder alles Abbrechen.
Delphi-Quellcode:
procedure ControlError(c: TWinControl; const msg:string);
begin
   c.SetFocus;
   raise Exception.Create(msg);
end;

procedure TForm1.ButtonOKClick(Sender: TObject);
begin
   if EditTelefon.Text ='' then
   begin
      ControlError(EditTelefon, 'Telefonnr fehlt !!');
   end;
   if Length(Editxxxx.Text) < 8 then
   begin
      ControlError(Editxxxx, 'Nummer zu kurz !!');
   end;
...
end;


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