Delphi-PRAXiS
Seite 2 von 2     12   

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 Nur Integer Werte im Edit Fenster zulassen (https://www.delphipraxis.net/75518-nur-integer-werte-im-edit-fenster-zulassen.html)

Lannes 22. Aug 2006 20:49

Re: Nur Integer Werte im Edit Fenster zulassen
 
Hallo,

den Bereich von -MAXINT bis MAXINT, wenn ich kein Increment setzen kann.
z.B.
Erste Eingabe 12758
Zweite Eingabe 34715
Dritte Eingabe -1245

da drück man sich den Finger platt. Der Anwender wird sich nach einem anderen Programm umsehen. :wink:

Die Frage der Behandlung von Integereingaben(oder andere) ist IMHO abhängig von der Art der Anwendung/Eingaben.

Ich code es meistens in etwa so:
- in OnKeyPress Tasten abfangen
- in OnChange prüfen, bei Fehler Edit einfärben und Hint zur Info(falls z.B. mit Strg+V eingefügt wurde)
- wenn Edit noch eingefärbt ist in OnExit Meldung und Focus zurück setzen.

Meflin 22. Aug 2006 21:54

Re: Nur Integer Werte im Edit Fenster zulassen
 
Zitat:

Zitat von Lannes
Hallo,
Erste Eingabe 12758
Zweite Eingabe 34715
Dritte Eingabe -1245

Ich verstehe immernoch das angebliche Problem nicht: man muss ja im SpinEdit nicht zwanfsläufig die Pfeil-Buttons benutzen, man kann die Zahlen ja auch direkt eingeben, also wo ist das Problem :gruebel:


Lannes 22. Aug 2006 23:10

Re: Nur Integer Werte im Edit Fenster zulassen
 
Hallo,

Zitat:

Zitat von Lannes
... man EditorEnabled auf false setzen, und man kann nichts mehr eingeben.

Ist EditorEnabled true kann man zwar etwas eingeben, aber auch ein Komma. Das Einfügen von beliebigen Zeichenketten z.B. mit Strg+V ist dann auch möglich. Das Auswerten der Eigenschaft Value ergibt in diesen Fällen dann 0.

Meflin 22. Aug 2006 23:57

Re: Nur Integer Werte im Edit Fenster zulassen
 
Zitat:

Zitat von Lannes
Ist EditorEnabled true kann man zwar etwas eingeben, aber auch ein Komma. Das Einfügen von beliebigen Zeichenketten z.B. mit Strg+V ist dann auch möglich. Das Auswerten der Eigenschaft Value ergibt in diesen Fällen dann 0.

Wenn dem so ist, dann haben wir immer noch keine zeile Code geschrieben wenn wir die Komponente verwenden, also immernoch die inefachste Lösung :roll:
Wieso sollte man dann groß rumfriemeln, bis jetzt hatten wir noch keinen wirklich überzeugenden Code :wall:


Hawkeye219 23. Aug 2006 08:39

Re: Nur Integer Werte im Edit Fenster zulassen
 
Es gibt eine überzeugende Lösung - sie wurde von Lannes in Beitrag #41 angesprochen.

Dieser Thread zeigt doch sehr deutlich, daß jeder Versuch, die Menge (und Anzahl) der gültigen Zeichen einzuschränken, früher oder später in einer sehr aufwendigen und dennoch unbefriedigenden Lösung endet. Bei Integer-Werten könnte man zumindest die Buchstaben ausschließen, bei Real-Werten nicht mal das vollständig ("E" für Exponent). Ein Vorzeichen sollte zugelassen werden, aber eben nur eines bei Integer, maximal zwei bei Reals. Ein Komma bei Real-Werten sollte möglich sein. Möchte der Anwender das Komma verschieben, muß er zunächst das alte löschen, um dann ein neues eingeben zu können.

Viel einfacher ist es doch, die Eingabe des Anwenders nicht einzuschränken, und ihm stattdessen eine optische Rückmeldung über seine Eingabe zu geben. Dies ist genau die Lösung, die Lannes angesprochen hat. marabu beschreibt sie hier für Real-Werte und hier für TDateTime-Werte. Wie die Beispielcodes zeigen, kann mit relativ geringem Aufwand eine überzeugende Lösung realisiert werden.

Gruß Hawkeye


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:34 Uhr.
Seite 2 von 2     12   

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