Hallo!
Ich habe ein Problem (was sonst). Und zwar habe ich ein Eingabefeld um mehrere Zahlen hintereinander einzugeben. Das ganze läuft wie an der Supermarktkasse: Zahl rein->Return->Fenster geht zu->Interaktion->nächste Zahl.
Um dem Nutzer das etwas einfacher zu machen, habe ich das VK_RETURN schon als Modalresult umgesetzt. Nun ist es aber wenn man sich vertippt hat doof, vom Ziffernblock weg zu gehen, und die Rücktaste zu nehmen. Da dachte ich mir ok, nehme ich das Ziffernblock-Minus und setze das um. Geht aber nicht.
Mein Code:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| procedure TForm2.edNumKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin case Key of VK_RETURN : ModalResult:= mrOK; VK_SUBTRACT : Key:= VK_BACK; end; end;
procedure TForm2.edNumKeyPress(Sender: TObject; var Key: Char); begin case Key of '0'..'9' : ; else Key:= #0; end; end; |
Wenn ich das Minus drücke, stimmt das Case, Key wird 8, aber im Edit wird nichts gelöscht.
Im KeyPress hab ichs auch versucht, aber da kann man VK_SUBTRACT nicht von '-' unterscheiden.
Wie kann ich also mein Ziel erreichen?
Grüße,
Sebastian
PS: editiert, geht aber immer noch nicht.
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."