Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Char(VK_DELETE) (https://www.delphipraxis.net/106335-char-vk_delete.html)

Nils_13 9. Jan 2008 11:20


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;

iKilledKenny 9. Jan 2008 11:34

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;

Muetze1 9. Jan 2008 11:47

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;

Nils_13 9. Jan 2008 12:01

Re: Char(VK_DELETE)
 
Hm, ich kann Entf immer noch nicht benutzen.

Ghostwalker 9. Jan 2008 12:07

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 :)

Nils_13 9. Jan 2008 12:09

Re: Char(VK_DELETE)
 
Hm, bei Entf springt er nicht in OnKeyPress, ansonsten schon.

Ghostwalker 9. Jan 2008 12:13

Re: Char(VK_DELETE)
 
Tja, dann isses wohl logisch das Entf nicht funktionieren kann ;)

Probier stattdessen mal onKeyDown :)

Nils_13 9. Jan 2008 12:16

Re: Char(VK_DELETE)
 
Wenn er bei Entf nicht reinspringt müsste es doch funktionieren, da Key := #0 dann nicht durchgeführt wird.

Ghostwalker 9. Jan 2008 12:21

Re: Char(VK_DELETE)
 
Was erwartest du denn, das er tut, wenn du Entf drückst ?

Nils_13 9. Jan 2008 12:25

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 20:10 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz