Einzelnen Beitrag anzeigen

FragenderHerbert

Registriert seit: 4. Dez 2013
47 Beiträge
 
#3

AW: GetAsyncKeyState - Verständnisfrage

  Alt 30. Okt 2014, 23: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?
  Mit Zitat antworten Zitat