![]() |
FormKeyUp Event
Hallo,
ich glaube ich stehe grad auf der Leitung. Es geht darum das ich einen Quellcode von onKeyPress zu OnKeyUp umgezogen habe weil OnKeyPress nicht mehr feuert. In OnKeyPress konnte ich mit Key: Char arbeiten. In OnKeyUp muss ich mit Key: Word arbeiten. Wie erkenne ich ob die Taste 1 (Zahl: eins) gedrückt wurde oder die Taste 1 (Zahl: eins) von dem NumLockBlock? |
AW: FormKeyUp Event
Die auf dem Nummernblock hat den Code VK_NUMPAD1
|
AW: FormKeyUp Event
Der Vollständigkeit halber: Die Zifferntasten im Alpha-Block haben die normalen Char-Codes, also $31 für die '1'.
|
AW: FormKeyUp Event
.. kannst Du da nicht die virtuellen KeyCode nutzen?
vk0 0-Zahl vkNumPad0 0-Zahl vom Nummernblock. Grüße Klaus |
AW: FormKeyUp Event
So in etwa?
Delphi-Quellcode:
Dann muss ich jede Taste einzeln abarbeiten.
procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;Shift: TShiftState);
begin if key=vkNumpad1 then FSuchString := Char(49) else FSuchString := Char(key); end; |
AW: FormKeyUp Event
Kommt drauf an, was du erreichen willst. Sollen die Num-Ziffern als normale Ziffern interpretiert werden?
|
AW: FormKeyUp Event
.. warum willst Du die denn überhaupt unterscheiden.
char(49) ist die Ziffer 1 - wenn NunMlock gedrückt ist, dann liefert auch das NumPad die Ziffer 1. Grüße Klaus |
AW: FormKeyUp Event
Beim drücken auf eine Taste öfnet sich ein Eingabefeld (FSuchString).
Wenn eine Num Taste gedrückt wird dann kommt als erste Eingabe ein Buchstabe. Bei Num Taste 1 ist es "a". Weil Key=79 ist und mit Char(Key) bekomme ich ein "a". |
AW: FormKeyUp Event
Delphi-Quellcode:
if Key in [VK_NUMPAD0 .. VK_NUMPAD9] then
Key := $30 + Key - VK_NUMPAD0; |
AW: FormKeyUp Event
Perfekt.
Das ist die Lösung. Vielen Dank Uwe. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:31 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