AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Ersatz für vk_Add im KeyDown-Ereignis

Ein Thema von juergen · begonnen am 27. Feb 2008 · letzter Beitrag vom 25. Nov 2008
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.164 Beiträge
 
Delphi 11 Alexandria
 
#1

Ersatz für vk_Add im KeyDown-Ereignis

  Alt 27. Feb 2008, 19:42
Hallo zusammen,
ich habe im OnKeyDown-Ereignis folgendes stehen:
Delphi-Quellcode:
procedure TMain01.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  if Key = vk_Add then
...
Das hat den Nachteil, dass ich NUR die Plustaste vom Num-Block verwenden kann.
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!
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

Re: Ersatz für vk_Add im KeyDown-Ereignis

  Alt 27. Feb 2008, 19:46
Hi,

Genau. Und das kannst du mir Ord('+') tuen oder ganz einfach abfragen ob die Taste = $2B.

Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.164 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Ersatz für vk_Add im KeyDown-Ereignis

  Alt 27. Feb 2008, 19:55
@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)
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Ersatz für vk_Add im KeyDown-Ereignis

  Alt 27. Feb 2008, 20:04
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
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

Re: Ersatz für vk_Add im KeyDown-Ereignis

  Alt 27. Feb 2008, 20:05
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;
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Ersatz für vk_Add im KeyDown-Ereignis

  Alt 27. Feb 2008, 20:12
das liegt daran das $BB was anderes ist als $2B
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

Re: Ersatz für vk_Add im KeyDown-Ereignis

  Alt 27. Feb 2008, 20:27
Ja.. das komische ist ja:

Delphi-Quellcode:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  Caption := IntToHex(Ord(KEy),2);
end;
da kommt $2B raus wenn man auf + drück... Deswegen dachte ich zuerst $2B.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.164 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Ersatz für vk_Add im KeyDown-Ereignis

  Alt 27. Feb 2008, 20:28
Vielen Dank, beide Varianten funktionieren!
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
Gibt es eine Tabelle wo ich die Konstanten für die Tasten finde?

Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Ersatz für vk_Add im KeyDown-Ereignis

  Alt 27. Feb 2008, 20:31
Zitat von Neutral General:
Ja.. das komische ist ja:

Delphi-Quellcode:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  Caption := IntToHex(Ord(KEy),2);
end;
da kommt $2B raus wenn man auf + drück... Deswegen dachte ich zuerst $2B.
*g* du bist drauf rein gefallen OnKeyPress liefert das Zeichen welches anhand der gedrückten Tasten entsteht. OnKeyDown hingegen liefert den Tastencode.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.735 Beiträge
 
Delphi 2007 Professional
 
#10

Re: Ersatz für vk_Add im KeyDown-Ereignis

  Alt 25. Nov 2008, 09:54
Ich weiß, das Thema ist uralt. Aber falls doch noch mal jemand drüberstolpert: Das Ding ($BB) heißt VK_OEM_PLUS.
Uli Gerhardt
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:34 Uhr.
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