![]() |
Char(VK_DELETE)
Hi,
ich kann Backspace drücken, aber Entf nicht. Warum ?
Delphi-Quellcode:
procedure TfrmCreate.eKMKeyPress(Sender: TObject; var Key: Char);
begin if not (Key in ['0'..'9', ',', '.', Char(VK_BACK), Char(VK_DELETE)]) then Key := #0; end; |
Re: Char(VK_DELETE)
VK_BACK = 8 = ASCII 8 = Backspace
VK_DELETE = 46 != ASCII 127 = Delete Heisst im Klartext nimm die ASCII-Codes anstelle der VK-Codes.
Delphi-Quellcode:
procedure TfrmCreate.eKMKeyPress(Sender: TObject; var Key: Char);
begin if not (Key in ['0'..'9', ',', '.', Char(8), Char(127)]) then Key := #0; end; |
Re: Char(VK_DELETE)
Und um sich den unnötigen Typecast zu sparen so schreiben (macht ihr ja beim zurücksetzen auch so...):
Delphi-Quellcode:
procedure TfrmCreate.eKMKeyPress(Sender: TObject; var Key: Char);
begin if not (Key in ['0'..'9', ',', '.', #8, #127]) then Key := #0; end; |
Re: Char(VK_DELETE)
Hm, ich kann Entf immer noch nicht benutzen.
|
Re: Char(VK_DELETE)
Debug doch einfach mal rein und schau dir an, ob er überhaupt bei "entf" in die Methode reinspringt und wenn ja, welchen char-code zu bekommst :)
|
Re: Char(VK_DELETE)
Hm, bei Entf springt er nicht in OnKeyPress, ansonsten schon.
|
Re: Char(VK_DELETE)
Tja, dann isses wohl logisch das Entf nicht funktionieren kann ;)
Probier stattdessen mal onKeyDown :) |
Re: Char(VK_DELETE)
Wenn er bei Entf nicht reinspringt müsste es doch funktionieren, da Key := #0 dann nicht durchgeführt wird.
|
Re: Char(VK_DELETE)
Was erwartest du denn, das er tut, wenn du Entf drückst ?
|
Re: Char(VK_DELETE)
Ich erwarte dass er das normale Ereignis durchführt, also das Zeichen hinter dem Caret (fälschlicherweise auch Cursor genannt) löscht.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:41 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-2025 by Thomas Breitkreuz