Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   FormKeyUp Event (https://www.delphipraxis.net/204023-formkeyup-event.html)

Edelfix 16. Apr 2020 08:51

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?

Uwe Raabe 16. Apr 2020 09:06

AW: FormKeyUp Event
 
Die auf dem Nummernblock hat den Code VK_NUMPAD1

Uwe Raabe 16. Apr 2020 09:09

AW: FormKeyUp Event
 
Der Vollständigkeit halber: Die Zifferntasten im Alpha-Block haben die normalen Char-Codes, also $31 für die '1'.

Klaus01 16. Apr 2020 09:10

AW: FormKeyUp Event
 
.. kannst Du da nicht die virtuellen KeyCode nutzen?

vk0 0-Zahl
vkNumPad0 0-Zahl vom Nummernblock.

Grüße
Klaus

Edelfix 16. Apr 2020 09:13

AW: FormKeyUp Event
 
So in etwa?

Delphi-Quellcode:
procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;Shift: TShiftState);
begin
  if key=vkNumpad1 then
    FSuchString := Char(49)
  else
    FSuchString := Char(key);
end;
Dann muss ich jede Taste einzeln abarbeiten.

Uwe Raabe 16. Apr 2020 09:17

AW: FormKeyUp Event
 
Kommt drauf an, was du erreichen willst. Sollen die Num-Ziffern als normale Ziffern interpretiert werden?

Klaus01 16. Apr 2020 09:18

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

Edelfix 16. Apr 2020 09:22

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".

Uwe Raabe 16. Apr 2020 09:30

AW: FormKeyUp Event
 
Delphi-Quellcode:
  if Key in [VK_NUMPAD0 .. VK_NUMPAD9] then
    Key := $30 + Key - VK_NUMPAD0;

Edelfix 16. Apr 2020 09:40

AW: FormKeyUp Event
 
Perfekt.
Das ist die Lösung.

Vielen Dank Uwe.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:13 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