![]() |
JEDEN tastendruck registrieren
hallo
unzwar wüsst ich gern wie ich JEDEN tastendruck speicher... bzw dessen nummer oder so in ein editfeld.. also keypreview hab ich true und bisher den code bei onkeypress so:
Delphi-Quellcode:
..nur die f-tasten gehen damit zum beispiel nicht und auch andere kombinationen wie strg-a o.ä.
edit1.Text:=inttostr(ord(Key));
..also ich will das ganze irgendwie als eine aktion aufnehmen.. damit ich es später wieder zurücksimulieren kann. mfg Timi-loader |
Re: JEDEN tastendruck registrieren
Versuch mal OnKeyDown ;)
|
Re: JEDEN tastendruck registrieren
...und da steht in Key ein
![]() |
Re: JEDEN tastendruck registrieren
aha ok.. also onkeydown macht schonmal mehr...thx
aber.. dummerweise macht das nur die aktuelle tasten.. also keine kombinationen.. da müsst ich ja dann irgendwie mir jede gedrückte taste merken und guggen bei onkeyup ob die schon wieder oben ist... oder gibts noch ne andere möglichkeit mit so strg-alt-buchstaben-kombinationen zu registrieren? EDIT: .. achso.. und wieso gehen tab und druck nicht? |
Re: JEDEN tastendruck registrieren
wegen alt+strg...schau dir mal den Parameter shift an...
Delphi-Quellcode:
HTH Frank
if (key=vk_return) and (shift = [ssCtrl,ssAlt]) then
showmessage('blah'); |
Re: JEDEN tastendruck registrieren
thx :)
.. also funktioniert soweit erstmal... nur tab und druck registriert er noch nicht.. hmz.. ..und windowskombinationen gehen ja auch nicht (weil windows kein shiftparameter ist).. das müsst ich dann irgendwie kompliziert anders machen... hmz... ..und eigendlich passts hier nicht mehr rein, aber wie kann ich die globale auswertung der keys dann stoppen?.. also will das event am besten im nichts verschwinden lassen.. da es ja nur zum registrieren in meinem programm dient.. |
Re: JEDEN tastendruck registrieren
Zitat:
Delphi-Quellcode:
Dies sagt weiteren Ereignissen, dass "keine" Taste gedrückt wurde.
Key := 0;
Jürgen |
Re: JEDEN tastendruck registrieren
Ich glaube nicht, dass das geht. Bei mir jedenfalls nicht. Funktioniert bei mir nur in OnKeyPress mit Key:=#0;
|
Re: JEDEN tastendruck registrieren
jo. das mit der 0 bringt nichts
|
Re: JEDEN tastendruck registrieren
Dann nimm OnKeyPress. In OnKeyDown wird das nicht gehen.
Wenn du F-Tasten unterdrücken willst, könntest du es mit TAppEvents (oder TApplicationEvents, weiß nicht mehr wie die hießen) probieren, in OnMessage. Wenn da ne WM_KEYDOWN reinkommt, dann überprüfst du, ob es die gesuchte Taste ist, und wenn ja machst du das, was du machen willst und setzt Handled auf True. |
Re: JEDEN tastendruck registrieren
also jo.. f-tasten und andere (windowstaste z.b.) will ich ja schon in meinem program erfassen.. deswegen ja onkeydown..
..hmz ja dachte ich mir irgendwie schon mit messages... .. muss ich nochmal danach suchen... mfg Timi-loader |
Re: JEDEN tastendruck registrieren
Wenn du ganz zentral die Tastendrücke haben möchtest, dann geht das über
Application.OnMessage
Delphi-Quellcode:
Aber Vorsicht: durch diese Funktion rauschen u.Umständen hunderte bis tausende von Messages;
procedure TForm1.HandleOnMessage(var Msg: TMsg; var Handled: Boolean);
begin case Msg.message of WM_CHAR: begin keyboardchars := keyboardchars+Char(Msg.wParam) also sparsam mit der Rechenzeit umgehen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:58 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