Registriert seit: 4. Dez 2013
47 Beiträge
|
AW: GetAsyncKeyState - Verständnisfrage
31. Okt 2014, 00:16
Hallo,
ich bin's nochmal. Habe mir jetzt eine kleine Funktion geschrieben:
Delphi-Quellcode:
function IsUndefinedKey(Key: Word): Boolean;
begin
case Key of
$07, $0A, $0B, $0E, $0F, $16,
$1A, $3A, $3B, $3C, $3D, $3E,
$3F, $40, $5E, $88, $89, $8A,
$8B, $8C, $8D, $8E, $8F, $92,
$93, $94, $95, $96, $97, $98,
$99, $9A, $9B, $9C, $9D, $9E,
$9F: Result := true;
else Result := false;
end;
end;
function GetKey: word;
var Key: Word;
begin
for Key := $01 to $FE do
begin
if not IsUndefinedKey(Key) then
if GetAsyncKeyState(Key) < 0 then
begin
Result := Key;
break;
end;
end;
end;
Die Funktion "IsUndefinedKey()" habe ich geschrieben weil laut MSDN diese Codes entweder nicht zugewiesen oder reserviert sind. So will ich damit erreichen, das bei Auftreten eines dieser Codes die Funktion GetAsyncKeystate nicht aufgerufen wird.
Ich habe eine Testschleife:
Delphi-Quellcode:
repeat
Key := GetKey;
until Key=27;
Wenn ich ESC drücke, wird die Repeat Schleife beendet, wie auch beabsichtigt. Aber die anderen Tasten scheinen nicht anzukommen. Warum?
|