AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi TMessage, welche Taste wurde gedrückt?
Thema durchsuchen
Ansicht
Themen-Optionen

TMessage, welche Taste wurde gedrückt?

Ein Thema von tofse · begonnen am 25. Feb 2013 · letzter Beitrag vom 26. Feb 2013
Antwort Antwort
tofse

Registriert seit: 6. Jun 2011
Ort: Saarlouis
131 Beiträge
 
Delphi XE Professional
 
#1

TMessage, welche Taste wurde gedrückt?

  Alt 25. Feb 2013, 14:55
Hallo,

wie bekomme ich bei
Code:
procedure WmMenuChar(var m : TMessage); message WM_MENUCHAR;
heraus, welche Taste gedrückt wurde?
In
Code:
var m : TMessage
muss doch irgendwo, irgendwie die Taste als Code enthalten sein

Danke
Gruss
Christof
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.222 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: TMessage, welche Taste wurde gedrückt?

  Alt 25. Feb 2013, 14:57
Microsoft erklärt in der MSDN wo welche Infos zu finden sind:
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
tofse

Registriert seit: 6. Jun 2011
Ort: Saarlouis
131 Beiträge
 
Delphi XE Professional
 
#3

AW: TMessage, welche Taste wurde gedrückt?

  Alt 25. Feb 2013, 15:09
Hallo,
danke!
Da steht:
Zitat:
wParam
The low-order word specifies the character code that corresponds to the key the user pressed.
Also verwende ich: m.WParamLo

Außerdem habe ich diese Funktion gefunden:
Code:
function GetCharFromVKey(vkey: Word): string;
var
  keystate: TKeyboardState;
  retcode: Integer;
begin
  Win32Check(GetKeyboardState(keystate));
  SetLength(Result, 2);
  retcode := ToAscii(vkey,
    MapVirtualKey(vkey, 0),
    keystate, @Result[1],
    0);
  case retcode of
    0: Result := ''; // no character
    1: SetLength(Result, 1);
    2:;
    else
      Result := ''; // retcode < 0 indicates a dead key
  end;
end;
Verwende ich nun
Code:
GetCharFromVKey(m.WParamLo)
dann funktioniert es bei den Zahlen, aber wenn ich eine Buchstabentaste drücke, dann kommt meistens nichts zurück

Gruss
Christof
  Mit Zitat antworten Zitat
Morphie

Registriert seit: 27. Apr 2008
Ort: Rahden
630 Beiträge
 
#4

AW: TMessage, welche Taste wurde gedrückt?

  Alt 25. Feb 2013, 15:15
Wozu GetCharFromVKey?

Code:
procedure TForm1.WmMenuChar(var m: TMessage);
var
  s: string;
begin
  s := chr(m.WParamLo);
  ShowMessage(s);
end;
  Mit Zitat antworten Zitat
tofse

Registriert seit: 6. Jun 2011
Ort: Saarlouis
131 Beiträge
 
Delphi XE Professional
 
#5

AW: TMessage, welche Taste wurde gedrückt?

  Alt 26. Feb 2013, 06:28
Danke
wozu getcharfromvkey?

Code:
procedure tform1.wmmenuchar(var m: Tmessage);
var
  s: String;
begin
  s := chr(m.wparamlo);
  showmessage(s);
end;
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

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

AW: TMessage, welche Taste wurde gedrückt?

  Alt 26. Feb 2013, 07:04
Danke
wozu getcharfromvkey?

Code:
procedure tform1.wmmenuchar(var m: Tmessage);
var
  s: String;
begin
  s := chr(m.wparamlo);
  showmessage(s);
end;
Obwohl mein erster Post irgendwie keinen interessiert hat, probier ich's nochmal. Die VCL bietet ja vorgefertigte "Message-Cracker". Damit kann man mit sinnvollen Namen und ohne Casten auf die Message-Parameter zugreifen:
Delphi-Quellcode:
procedure TForm1.WMMenuChar(var m: TWMMenuChar);
var
  s: string;
begin
  s := m.User;
  ShowMessage(s);
end;
(OK, "User" ist jetzt kein soooo sinnvoller Name... )
Uli Gerhardt
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

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

AW: TMessage, welche Taste wurde gedrückt?

  Alt 25. Feb 2013, 15:12
Code:
procedure WmMenuChar(var m : TMessage); message WM_MENUCHAR;
Nimm doch TWMMenuChar statt TMessage . Dann brauchst du weniger Casts.
Uli Gerhardt
  Mit Zitat antworten Zitat
Antwort Antwort


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 20:33 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