AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Nur Integer Werte im Edit Fenster zulassen

Ein Thema von benisenis · begonnen am 20. Aug 2006 · letzter Beitrag vom 23. Aug 2006
Antwort Antwort
Seite 5 von 5   « Erste     345   
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#41

Re: Nur Integer Werte im Edit Fenster zulassen

  Alt 22. Aug 2006, 20:49
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.

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.
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#42

Re: Nur Integer Werte im Edit Fenster zulassen

  Alt 22. Aug 2006, 21:54
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

  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#43

Re: Nur Integer Werte im Edit Fenster zulassen

  Alt 22. Aug 2006, 23:10
Hallo,

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.
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#44

Re: Nur Integer Werte im Edit Fenster zulassen

  Alt 22. Aug 2006, 23:57
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
Wieso sollte man dann groß rumfriemeln, bis jetzt hatten wir noch keinen wirklich überzeugenden Code

  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#45

Re: Nur Integer Werte im Edit Fenster zulassen

  Alt 23. Aug 2006, 08:39
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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 5 von 5   « Erste     345   


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 02:48 Uhr.
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