Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Wenn Sring anstatt Integer Fehlermeldung umgehen (https://www.delphipraxis.net/156270-wenn-sring-anstatt-integer-fehlermeldung-umgehen.html)

raysto 25. Nov 2010 18:02

Wenn Sring anstatt Integer Fehlermeldung umgehen
 
Ich versuche mich seit kurzer Zeit, an der Fehlerbehebung, wenn man z.B. ein Edit feld hat und da ein Integer eintragen soll, aber ein String reintut und bestätigt kommt die Fehlermeldung. Kann ich irgendwie machen, das dann eine Nachricht kommt, dass man Zahlen und keine Buchstaben eintragen soll?
So dass ich die Fehlermeldung umgehe.
Danke im vorraus =)

DeddyH 25. Nov 2010 18:06

AW: Wenn Sring anstatt Integer Fehlermeldung umgehen
 
Val(), try-except, TryStrToInt(), Du kannst Dir etwas davon aussuchen.

raysto 25. Nov 2010 18:26

AW: Wenn Sring anstatt Integer Fehlermeldung umgehen
 
Was muss ich denn dann in die Klammer schreiben?

DeddyH 25. Nov 2010 18:28

AW: Wenn Sring anstatt Integer Fehlermeldung umgehen
 
Val
TryStrToInt
Die Hilfe gibt es ja nicht umsonst, da kann man ruhig einmal reinschauen.

mkinzler 25. Nov 2010 18:30

AW: Wenn Sring anstatt Integer Fehlermeldung umgehen
 
Es fehlt noch StrToIntDef()
Zitat:

Was muss ich denn dann in die Klammer schreiben?
Das sagt dir eigentlich der Quellcodeeditor und/oder die Hilfe

DeddyH 25. Nov 2010 18:48

AW: Wenn Sring anstatt Integer Fehlermeldung umgehen
 
StrToIntDef() erscheint mir hier aber nicht richtig passend, da er ja eine Fehlermeldung ausgeben will. Wenn ich einen Wert zurückbekomme, kann ich ja nicht wissen, ob dieser nun eingegeben wurde oder als Standardwert zurückkommt.

nachti1505 25. Nov 2010 20:13

AW: Wenn Sring anstatt Integer Fehlermeldung umgehen
 
Im OnKeyPress keine Buchstaben zulassen!

s.h.a.r.k 25. Nov 2010 20:15

AW: Wenn Sring anstatt Integer Fehlermeldung umgehen
 
Alle Antworten haben zwar an sich mit der Frage zu tun, ABER es sollte dennoch anders gemacht werden: Lasse erst gar nicht zu, dass er einen String eintragen kann, sondern eben nur Zahlen. Je schneller ein Benutzer Feedback über die Korrektheit seiner Eingabe erhält um so besser. Vermeide so Message-Boxen wenn es nur geht, da dies für den Workflow ein eher störendes Element sind.

Ab Delphi 2010 kann man bei einem Edit auch einstellen, dass nur Zahlen eingegeben werden dürfen, kenne die Eigenschaft allerdings gerade nicht.

-- Edit
@nachti1505: Was ist aber bei Copy & Paste (was auch via Drag&Drop geht)? ;)

Zwoetzen 25. Nov 2010 20:24

AW: Wenn Sring anstatt Integer Fehlermeldung umgehen
 
Zitat:

Zitat von s.h.a.r.k (Beitrag 1064097)
Ab Delphi 2010 kann man bei einem Edit auch einstellen, dass nur Zahlen eingegeben werden dürfen, kenne die Eigenschaft allerdings gerade nicht.

Die Eigenschaft heißt
Delphi-Quellcode:
NumbersOnly
und existiert schon mindestens seit Delphi 2009 ;)

s.h.a.r.k 25. Nov 2010 20:26

AW: Wenn Sring anstatt Integer Fehlermeldung umgehen
 
Zitat:

Zitat von Zwoetzen (Beitrag 1064099)
Die Eigenschaft heißt
Delphi-Quellcode:
NumbersOnly
und existiert schon mindestens seit Delphi 2009 ;)

Man lernt nie aus :mrgreen: Danke für den Hinweis!

himitsu 25. Nov 2010 21:34

AW: Wenn Sring anstatt Integer Fehlermeldung umgehen
 
Der Windows-Style ES_NUMBER existiert schon länger, aber BorCodEmba brauchte ewig, um es einzubinden. :stupid:
Man könnte es also auch in D7 nachrüsten.

DeddyH 26. Nov 2010 09:43

AW: Wenn Sring anstatt Integer Fehlermeldung umgehen
 
Zitat:

Zitat von MSDN
ES_NUMBER

Allows only digits to be entered into the edit control. Note that, even with this set, it is still possible to paste non-digits into the edit control.

To change this style after the control has been created, use SetWindowLong.

Unter Windows 7 kann ich dies zwar nicht nachvollziehen, für ältere Windows-Versionen könnte das aber dennoch zutreffen (das steht ja nicht umsonst da). Außerdem kann man dann auch keinen Dezimalseparator mehr eingeben (gut, der spielt in diesem Fall keine Rolle, ich wollte trotzdem mal darauf hinweisen).


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:01 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 by Thomas Breitkreuz