Falsche Eingabe Ziffern und nicht Buchstaben!!!
-
Key bedeutet im englischen Sprachgebrauch im Allgemeinen auch "Taste" (vgl. Keyboard)
Ausserdem wäre es wohl auch sinnvoll, wenn du dir darüber gedanken machen würdest, woher "Key" überhaupt kommt? Eventuell findest du da wohl was in der Doku zum verwendeten Event? Wer weiss?
-junix
-
Alles klar ....
das heist die IF anweisung ist klar ... demnach also nur zahlen von 0 - 9 möglich
Gudie demnach ist auch kein Komma Möglich mag mir eventuel das jemand sagen ?ICh weiß ich habe nee lange LEitung ....
aber danach bin ich ferig mit meinem Barcode Berechnungsprogramm...
-
Hey ihr vielen netten LEute ich möchte nicht das ich wegen meinen Fragen schlechte Kritik für euer Forum bekommt. schmeißt meine unqualifizierten Fragen ruhig raus. Easy hauptsache das Forum bleibt generell am start!!!
-
Ich will ja nicht mäkeln, aber wenn Du ein Barcodeberechnungsprog hingekriegt hast wirst Du wohl auch dieses if so hingebogen bekommen, daß auch ein Komma eingebbar ist
-
Naja irgendwie ist die luft raus...sitz da auch schon ein paar tage dran!
Peter, jetzt mal ehrlich du kannst das bestimmt aus dem FF , oder nicht ?
-
Du hast doch folgenden Code aus der FAQ in Dein Prog eingebaut (siehe weiter oben) oder nicht ?
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key) { if((Key<'0' || Key>'9') && Key!=8) Key=0; }
So, was macht der ?
Wenn die gedrückte Taste kleiner ist als ne '0' oder größer ist als ne '9' (sprich nicht die Ziffern 0-9 beinhaltet) und auch nicht Backspace ist, dann ignoriere diese Taste (Key=0).
Wie könnte man es denn jetzt wohl anstellen, daß auch das Komma nicht ignoriert wird
Übrigens, diese Methode:LONG dwStyle = GetWindowLong( Edit1->Handle, GWL_STYLE); SetWindowLong( Edit1->Handle, GWL_STYLE, dwStyle | ES_NUMBER );
braucht man nur ein einziges Mal aufrufen. Danach akzeptiert das entsprechende TEdit von ganz alleine nur noch numerische Eingaben
-
Hey, ja soweit so gut habe ich es ausprobiert, da ich das Komma ja noch verwenden möchte kommt für mich nur der erste Arbeitsschritt , oder ?
Mein Code:
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key) { if((Key<'0' || Key>'9' || Key ==',') && Key!=8) Key=0; }
klapt nur leider nicht ?
-
mensch denk doch mal nach!!!
if((Key<'0' || Key>'9') && Key!=8 && Key !=',') Key=0;
-
Ich habe noch nie gesehen, daß jemand die Beiträge von junix so hartnäckig ignoriert.
Das grenzt schon fast an BlasphemieWas häst Du von folgendem:
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key) { if((Key<'0' || Key>'9') && Key!=8) if(Key == ',') { // hier muß was passieren wenn Komma schon bereits eingegeben wurde // kleine Denksportaufgabe für Chiller } else Key=0; }
-
das geht aber noch einfacher:
if((Key<'0' || Key>'9') && Key!=8 && Edit1->Text.Pos(',')!=0) Key=0;
auch wenn ich Chiller jetzt nicht zum Denken gezwungen hab
-
Der Chiller hat es geschafft, lange hats gedauert!
{ if((Key<'0' || Key>'9') && Key!=8) if(Key == ',') { // hier muß was passierte was Key=','; // Denksportaufgabe vom Chiller...gelöst :) } else Key=0; }
Leute Danke, Junix sorry!
Ich wünsche euch allen viel spaß die Tage...
Melde mich bei euch werde mich registrieren
und euch nicht mehr fern bleibenMfG Der Chiller am 1 Oktober 2003
-
schaltest du eigentlich dein hirn beim programmieren aus?
was ist denn dass fürn code??if(Key==',') { Key=','; } // sinnlos hoch 3
was isn, wenn jetzt jmd zwei kommas eintippt???
-
Es scheint ein guter Zeitpunkt zu sein, hier mal für 1-2h zuzumachen, damit Chiller über das geschriebene nachdenken kann und nicht in Versuchung kommt einfach wieder zu posten, wenn er etwas nicht gliech begreift.
Ich mach dann später wieder auf...
-junix
-
..willkommen zur Wiedereröffnung..
-junix
-
Hey ho da bin ich wieder
solangsam wird mir es echt unangenehm fragen zu stellen...aber ich hätte da noch eine in bezug auf die Eingabe Möglichkeiten im Edit feld! Die könnt ihr euch glaube ich auch schon denken...geht so in die Richtung ffFixed 8,2... :p
-
spielen wir jetzt jepardy? sollen wir deine Frage erraten?
-
Nein, ihr könnt auch einfach sagen das ich nichts mehr posten soll...
Aber scheinbar habt ihr gerade durch mich ordentlich etwas zum lachen
Meine verwandte Frage:
Ich möchte die eingabe auf 2 komma stellen (hinter Komma) imm EDIT Feld beschränken !!!??? Wie mache ich das ? Mir ist die Ausgabe nur bekannt ...
-
benutz die suchfunktion in bezug auf "Pos" und "Length"
-
Alles klars
das werde ich mal machen ....
Danke
-
Aber scheinbar habt ihr gerade durch mich ordentlich etwas zum lachen
Dies dürfte zutreffen.
Aber mit Sicherheit nicht weil Du die Dinge die Du fragst nicht weisst sondern die Hinweise die man Dir gibt hartnäckig nicht beachtest.Scheinbar erwartest Du eine fertige Lösung. Die Du aber hier nicht erhälst.
Hier gibt es Anregungen zum Nachdenken.Was Du uns dann als Deine Lösung präsentierst ist Mist und zeigt, dass Du Deinen eigenen Code überhaupt nicht getestet hast.
Jester2000 hat Dir die optimale Lösung gebracht. Stattdessen postest Du noch Deinen Kot.Falls Du das von mir gelieferte Beispiel nehmen willst, habe ich es noch erweitert damit Du die Funktion Length kennenlernst. Der Weg zu Pos() sollte dann nicht mehr so schwer sein.
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key) { if((Key<'0' || Key>'9') && Key!=8) if(Key == ',') { // hier muß was passieren wenn Komma schon bereits eingegeben wurde // kleine Denksportaufgabe für Chiller AnsiString ChillerString = "Ijfs!nvtt!Dijmmfs!opdinbm!obdiefolfn"; for(int i = 1; i < ChillerString.Length(); ++i) ChillerString[i] -= 1; ShowMessage(ChillerString); } else Key=0; }