AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Falscheingabe im EditLabel verhindern.
Thema durchsuchen
Ansicht
Themen-Optionen

Falscheingabe im EditLabel verhindern.

Ein Thema von Pylickuz · begonnen am 1. Nov 2015 · letzter Beitrag vom 2. Nov 2015
 
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.735 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

AW: Falscheingabe im EditLabel verhindern.

  Alt 1. Nov 2015, 12:54
Ja, ich weiss, die Frage ist eigentlich beantwortet, aber ich will trotzdem meinen Senf dazugeben:

Alle bisherigen Antworten drehen sich darum, eine fehlerhafte Eingabe zu verhindern. Das wird gerne mit OnKeyDown gemacht, so dass "falsche" Zeichen gar nicht erst im Edit-Feld landen, und um den User fuer seine Dummheit zu bestrafen auch noch gerne mit nerviger Piepserei verbunden. Noch toller ist es, wenn der Cursor dann noch in einem Eingabefeld haengen bleibt, bis man dort einen gueltigen Wert eingegeben hat.

Ich persoenlich hasse solche Programme und bevorzuge es, erstmal alle Eingaben zu erlauben, sie zu parsen und dann Fehler hervorzuheben. Das sieht dann so aus:

Delphi-Quellcode:
procedure TMyForm.ed_ANumberOnChange(Sender: TObject);
var
  ed: TEdit;
  Value: integer; // alternativ: extended;
begin
  ed := Sender as TEdit;
  if not TryStrToInt(ed.Text, Value) then begin // alternativ: TryStrToFloat
    ed.Color := clYellow;
    SomeAction.Enabled := false;
  end else begin
    ed.Color := clWindow;
    SomeAction.Enabled := true;
  end;
end;
Es wird also die Hintergrundfarbe des TEdit auf Gelb (Rot ist schlechter lesbar) gesetzt, wenn die Eingabe fehlerhaft ist, sonst wieder auf Weiss (nicht vergessen). Ausserdem werden Actions, die diese Eingabe benutzen, disabled.

Meine User moegen diese Art der Hervorhebung, aber alternativ oder ergaenzend zur Hintergrundfarbe kann man auch andere visuelle Hinweise geben, z.B. kann man in der Statuszeile oder als Hint des Controls eine Fehlereldung anzeigen.

Microsoft hatte mal ein blinkendes Ausrufezeichen rechts neben dem Eingabefeld eingefuehrt (war das mit dotNET?), das hat auch die JVCL implementiert. Diese Mode scheint aber inzwischen wieder out zu sein.

Was absolut nervt ist, wenn ein Tastendruck einfach nur ignoriert oder mit einem Piepsen quittiert wird, ohne dass man sieht, was das Problem ist.

twm
Thomas Mueller
  Mit Zitat antworten Zitat
 

 

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 15:25 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