![]() |
Re: Edit-Feld im Exit-Ereignis prüfen
Zitat:
|
Re: Edit-Feld im Exit-Ereignis prüfen
Zitat:
Außerdem kann in OnExit geprüft werden, ob Sender <> CleanButton usw. ist. Jürgen |
Re: Edit-Feld im Exit-Ereignis prüfen
SetFocus klappt nicht. Aber wie kann ich den Sender ermittlen??
|
Re: Edit-Feld im Exit-Ereignis prüfen
Zitat:
|
Re: Edit-Feld im Exit-Ereignis prüfen
:wiejetzt:
|
Re: Edit-Feld im Exit-Ereignis prüfen
Hi
Wie wär's einfach mit einem Ausblenden der OnExit _ Ereignisprocedure ?
Delphi-Quellcode:
oder so ungefähr, da ich deinen Quellcode nicht kenne.
Procedure MyForm.MyButtonClick(Sender: Tobject);
Begin MyEdit.OnExit:=Nil; .... aufräumen .... MyEdit.OnExit:=MyEditExit; end; Gruß oldmax |
Re: Edit-Feld im Exit-Ereignis prüfen
Hat leider auch nicht geklappt. Hier mal der Code des onExit-Ereignisses:
Delphi-Quellcode:
Die Clear-Prozedur sieht wie folgt aus:
procedure TfrmMain.edliefExit(Sender: TObject);
var i,j:Integer; lief:String; begin lief:= edlief.text; j:=length(lief); if j <> 6 then begin showmessage('Fehlerhafte Lieferanteneingabe. Bitte prüfen!!'); edlief.clear; edlief.SetFocus; exit; end; for i := 1 to length(lief) do begin if not (lief[1] in ['A'..'Z']) then begin showmessage('Fehlerhafte Lieferanteneingabe. Bitte prüfen!!'); edlief.Clear; edlief.SetFocus; exit; end; if not (lief[2] in ['A'..'Z']) then begin showmessage('Fehlerhafte Lieferanteneingabe. Bitte prüfen!!'); edlief.Clear; edlief.SetFocus; exit; end; if not (lief[3] in ['A'..'Z']) then begin showmessage('Fehlerhafte Lieferanteneingabe. Bitte prüfen!!'); edlief.Clear; edlief.SetFocus; exit; end; if not (lief[4] in ['A'..'Z']) then begin showmessage('Fehlerhafte Lieferanteneingabe. Bitte prüfen!!'); edlief.Clear; edlief.SetFocus; exit; end; if not (lief[5] in ['0'..'9']) then begin showmessage('Fehlerhafte Lieferanteneingabe. Bitte prüfen!!'); edlief.Clear; edlief.SetFocus; exit; end; if not (lief[6] in ['0'..'9']) then begin showmessage('Fehlerhafte Lieferanteneingabe. Bitte prüfen!!'); edlief.Clear; edlief.SetFocus; exit; end; end; end;
Delphi-Quellcode:
Procedure TfrmMain.clear();
var i:Integer; begin for i := 0 to frmMain.ComponentCount -1 do begin if (Components[i] is TEdit) then begin (TEdit(frmMain.Components[i]).Clear); end; end; dcb.Text:=''; end; |
Re: Edit-Feld im Exit-Ereignis prüfen
Moin Ati,
also ich würde die Prüfung erst einmal in eine eigene Funktion auslagern:
Delphi-Quellcode:
function IsValidLieferantenNummer(const AsLiefNr : string) : boolean;
var i : integer; begin Result := false; if length(AsLiefNr) <> 6 then exit; for i := 1 to length(AsLiefNr) do begin if i <= 4 then begin if not (AsLiefNr[i] in ['A'..'Z']) then exit; end else begin if not (AsLiefNr[i] in ['0'..'9']) then exit; end; end; Result := true; end; |
Re: Edit-Feld im Exit-Ereignis prüfen
Das hatte ich jetzt gerade auch schon gemacht...wobei Deine Funktion um ein vielfaches einfacher/besser ist als meine. Danke!!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:21 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