TEdit bearbeiten, wieso klappt der Code nicht?
-
Wenn man vom Teufel spricht...
Dir auch alles Gute, Peter.
-
Ups, da hab ich euch velwechsert.
'tschuldigung
-
Du scheinst öfter mal was zu verwechseln.
-
Mir fällt gerade auf das bei diesem Code der "." aber nicht gesperrt wird, wie bekomme ich das auch noch hin?
bei
void __fastcall TRechner::Edit1KeyPress(TObject *Sender, char &Key) { if(Key<'0' || Key>'9' && Key != VK_DELETE && Key != VK_BACK) Key=0; }
Klappt VK_BACK nicht bei
void __fastcall TRechner::Edit1KeyPress(TObject *Sender, char &Key) { if((Key<'0' || Key>'9') && Key != VK_DELETE && Key != VK_BACK) Key=0; }
Geht der Punkt wieder
-
Immernoch das Selbe Klammernproblem...
Dein Obiger code entspricht folgendem:if( Key<'0' || (Key>'9' && Key != VK_DELETE && Key != VK_BACK))
Deshalb wird bei obigem Code alle Bucstaben mit einem ASCII-Code kleiner als der ASCII Code von '0'.
Ich hoffe ich konnte etwas Licht in die Sache bringen (:
-junix
-
Erbarmst du dich und verrätst mir wie das geht? Von AscII hab ich nicht wirklich Ahnung, und ich verstehe auch nicht wieso der . auch geht wenn man
&& != '.' noch in die Klammer packtIch kann klammern wie ich will entweder geht nur das eine oder das andere
-
http://www.google.com/search?sourceid=navclient&ie=UTF-8&oe=UTF-8&q=Operator+Priorit%C3%A4ten+C
Des weiteren würd ich dir empfehlen dringend C/C++ Grundlagen zu Pauken! **)
-junix
*) Wink mit dem Zaunpfahl
**) Deutlicher, gut aber ernst gemeinter Rat
-
Original erstellt von <LESMONA>:
Ich kann klammern wie ich will entweder geht nur das eine oder das andereNein. Ganz sicher gehst du, wenn du um jeden Fall Klammern setzt. Die Fälle sind
Key<'0' || Key>'9' Key != VK_DELETE Key != VK_BACK
Und alle sind mit && verknüpft. Heißt: Wenn Key (kleiner als '0' oder größer als '9') und (nicht VK_DELETE) und (nicht VK_BACK), dann setze Key auf 0.
BTW: Die CreateParams()- bzw. SetWindowLong()-Methode halte ich hier einfach für schlauer. Aber wie du willst.
[ Dieser Beitrag wurde am 19.12.2002 um 22:12 Uhr von WebFritzi editiert. ]