Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   If Key = #107 (https://www.delphipraxis.net/200696-if-key-%3D-107-a.html)

Luckner 16. Mai 2019 14:14

If Key = #107
 
Hallo,
habe eine Abfrage gebastelt, die jedoch nur teilweise funktioniert.
Delphi-Quellcode:
if Key = #13 then //RETURN-Taste
begin
  ShowMessage('Bin hier 1');
  usw.
end
else if Key = #107 then //+-Taste auf dem Num-Block.
begin
  ShowMessage('Bin hier 2');
  usw.
end
Die Return-Taste funktioniert, die Plus-Taste jedoch nicht. Nach der Recherche dürfte jedoch #107 für die +-Taste korrekt sein. Oder doch nicht. Ich bitte um Hilfe.

Danke, Luckner

DieDolly 16. Mai 2019 14:20

AW: If Key = #107
 
Nach meinem Test ist + die 43 und - die 45. Egal ob Nummernblock oder nicht.

Delphi-Quellcode:
procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
 ShowMessage(Ord(Key).ToString);
end;

jsp 16. Mai 2019 14:21

AW: If Key = #107
 
Versuch mal

Delphi-Quellcode:
..........
else if Key = VK_Add then //+-Taste auf dem Num-Block.
begin
  ShowMessage('Bin hier 2');
  usw.
end
Gruss, Jörn

DieDolly 16. Mai 2019 14:22

AW: If Key = #107
 
VK_ADD ist auch die 107. + ist aber laut Windows 10 Bildschirmtastatur die 43.

Uwe Raabe 16. Mai 2019 14:23

AW: If Key = #107
 
Im OnKeyPress kommt lediglich das +-Zeichen an. Willst du den Tastencode, dann musst du das im OnKeyDown machen.

Neutral General 16. Mai 2019 14:26

AW: If Key = #107
 
Der Unterschied ist, das eine ist der Virtuelle Tastencode, das andere der ASCII-Wert des Zeichens.
Im KeyPress bekommt man die ASCII-Werte in KeyDown/KeyUp bekommt man die virtuellen Tastencodes.

Im KeyPress kann man dementsprechend einfach abfragen:
Delphi-Quellcode:
if Key = '+' then
  ...
Im KeyDown/KeyUp:
Delphi-Quellcode:
if Key = VK_ADD then
  ...

DieDolly 16. Mai 2019 14:29

AW: If Key = #107
 
Zitat:

Zitat von Neutral General (Beitrag 1432352)
Der Unterschied ist, das eine ist der Virtuelle Tastencode, das andere der ASCII-Wert des Zeichens.
Im KeyPress bekommt man die ASCII-Werte in KeyDown/KeyUp bekommt man die virtuellen Tastencodes.

Im KeyPress kann man dementsprechend einfach abfragen:
Delphi-Quellcode:
if Key = '+' then
  ...
Im KeyDown/KeyUp:
Delphi-Quellcode:
if Key = VK_ADD then
  ...

Ich kann ihm oder ihr da nur den Tipp geben auf 43 und 45 zu prüfen. Es gibt nichts schlimmeres als ein Programm, was auf einen Nummernblock angewiesen ist.
Es gibt tatsächlich Leute, die haben und wollen keinen Nummernblock :thumb:

Neutral General 16. Mai 2019 14:33

AW: If Key = #107
 
Zitat:

Zitat von DieDolly (Beitrag 1432353)
Ich kann ihm oder ihr da nur den Tipp geben auf 43 und 45 zu prüfen. Es gibt nichts schlimmeres als ein Programm, was auf einen Nummernblock angewiesen ist.

Ist jetzt nicht wirklich so als könnte er sich das aussuchen.
Wenn er im KeyDown auf 43/45 abprüft funktioniert es weder mit noch ohne Nummernblock.
Umgekehrt bringt VK_ADD im KeyPress nichts.

Zitat:

Zitat von DieDolly (Beitrag 1432353)
Es gibt tatsächlich Leute, die haben und wollen keinen Nummernblock :thumb:

Natürliche Selektion :duck:
Ohne Numblock geht gar nicht :?

Luckner 16. Mai 2019 14:47

AW: If Key = #107
 
Danke für die Hinweise. 43/45 in KeyPress funktionieren nicht. Ebenfalls '+' nicht. Warum funktioniert #13 in KeyPress so gut?

Luckner

Neutral General 16. Mai 2019 14:48

AW: If Key = #107
 
Zitat:

Zitat von Luckner (Beitrag 1432357)
Danke für die Hinweise. 43/45 in KeyPress funktionieren nicht. Ebenfalls '+' nicht. Warum funktioniert #13 in KeyPress so gut?

Luckner

Habs probiert, funktioniert.
Ggf. "KeyPreview" der Form auf true setzen?


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:27 Uhr.
Seite 1 von 3  1 23      

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