![]() |
Ersatz für vk_Add im KeyDown-Ereignis
Hallo zusammen,
ich habe im OnKeyDown-Ereignis folgendes stehen:
Delphi-Quellcode:
Das hat den Nachteil, dass ich NUR die Plustaste vom Num-Block verwenden kann.
procedure TMain01.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin if Key = vk_Add then ... Ich würde gern beide Möglichkeiten nutzen, also auch die Plustaste rechts neben dem "ü". Beide Tasten haben den ASCII-Wert #43. Wie kann man denn beide Tasten im KeyDown-Event abfragen? Also irgendwie #43 in einen Word-Wert umwandeln, oder? Schon mal Danke vorab! |
Re: Ersatz für vk_Add im KeyDown-Ereignis
Hi,
Genau. Und das kannst du mir Ord('+') tuen oder ganz einfach abfragen ob die Taste = $2B. ;) Gruß Neutral General |
Re: Ersatz für vk_Add im KeyDown-Ereignis
@Neutral General,
danke für deine Antwort. Diese beiden Varianten hatte ich schon probiert, allerdings dann mit der Konstante $6A. Die Bedingung wird aber nicht ausgeführt (mit keiner der beiden möglichen Tasten) :( |
Re: Ersatz für vk_Add im KeyDown-Ereignis
du hast einen kleinen Gedankenfehler. Du schreibst bei dir haben beide Tasten den Ascii-Wert....
Das kann nicht sein. Eine Taste kann nicht den gleichen Wert haben wie eine andere Taste. Und es geht hier auch nicht um den Ascii-Wert weil eine Taste nichts (zumindest wenig) damit zu tun hat was beim Druck dieser dargestellt wird. Daher bekommst du im OnKeyDown auch für das kleine 'a' und das große 'A' den gleichen Wert weil beides die gleiche Taste ist. Bei mir hat übrigens die + Taste auf dem Nummernblock den Tastencode 107 und die + Taste neben der Enter Taste den Wert 187 |
Re: Ersatz für vk_Add im KeyDown-Ereignis
Hi,
So gehts bei mir:
Delphi-Quellcode:
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); begin if (Key = $BB) or (Key = VK_ADD) then ShowMessage('!'); end; |
Re: Ersatz für vk_Add im KeyDown-Ereignis
das liegt daran das $BB was anderes ist als $2B :wink:
|
Re: Ersatz für vk_Add im KeyDown-Ereignis
Ja.. das komische ist ja:
Delphi-Quellcode:
da kommt $2B raus wenn man auf + drück... Deswegen dachte ich zuerst $2B. :P
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin Caption := IntToHex(Ord(KEy),2); end; |
Re: Ersatz für vk_Add im KeyDown-Ereignis
Vielen Dank, beide Varianten funktionieren! :thumb:
Mein jetziges Problem: Ich habe hier eine ASCII-Tabelle DOS Codepage 850(von Wikipedia). Da steht für das Pluszeichen der Wert 043. Ich hatte nun gedacht, das wäre mein Wert den ich suche. Wie ich nun weiß, ist das ja falsch. @SirThornberry, gibt es eine Tabellen-Norm nach der ich suchen könnte, um deine genannten Werte zu finden? @Neutral General, ich habe hier eine Tabelle, da stehen die Virtual Keys drin mit deren Konstanten. Bei vk_Add steht bei mir allerdings -> $6B :gruebel: Gibt es eine Tabelle wo ich die Konstanten für die Tasten finde? :dp: |
Re: Ersatz für vk_Add im KeyDown-Ereignis
Zitat:
|
Re: Ersatz für vk_Add im KeyDown-Ereignis
Ich weiß, das Thema ist uralt. Aber falls doch noch mal jemand drüberstolpert: Das Ding ($BB) heißt VK_OEM_PLUS.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:07 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 by Thomas Breitkreuz