![]() |
frage zu getasynckeystate
Hallo,
ich benutze getasynckeystate um zu schauen ob enter und shift gleichzeitig gedrückt sind, mein Problem dabei ist, das das Programm, wenn ich shift vorher drücke und enter zeitversetzt danach denkt das es gleichzeitig wäre. Das soll natürlich nicht sein, gibt es Alternativen bzw. eine Lösung für meinen Ansatz? MfG Spiderpig |
Re: frage zu getasynckeystate
Wie wertest du den Rückgabewert von GetAsyckKeyState aus?
Delphi-Quellcode:
// Trick: die Bedingung < 0 prüft, ob das höchstwertige Bit (MSB) gesetzt ist
if (GetAsyckKeyState(VK_ENTER)<0) and (GetAsyckKeyState(VK_RSHIFT)<0) then ShowMessage('Right-Shift + Enter'); |
Re: frage zu getasynckeystate
momentan überprüfe ich es wie folgt:
mit keyup schaue ich ob enter gedrückt ist, und mit getasynckeystate schaue ich ob zusätzlich shift gedrückt ist.
Delphi-Quellcode:
hilföööö
keyup...
if (key = vk_return) and (getasynckeystate(vk_shift)>0) then ... Spiderpig |
Re: frage zu getasynckeystate
Es sieht für mich so aus, als ob du es nur innerhalb eines Controls benötigst und OnKeyDown verwenden kannst. Dann geht das so (ohne GetAsyncKeyState):
Delphi-Quellcode:
Grüße
if (ssShift in Shift) and (Key = VK_RETURN) then
// ... |
Re: frage zu getasynckeystate
was ist denn sShift?
MfG Spiderpig |
Re: frage zu getasynckeystate
einer der Parameter im OnKeyDown und OnKeyUp
|
Re: frage zu getasynckeystate
schau dir mal deine Funktion Onkeydown an:
Delphi-Quellcode:
und dazu die Hilfe:
FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); Zitat:
|
Re: frage zu getasynckeystate
dankü schön
:firejump: :dp: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:03 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