![]() |
Re: Key abfrage
Zitat:
Da ich nicht abfragen will ob der status schon mal gedrückt war sondern nur welcher aktuell ist. Aber trotz alledem funktioniert es nicht. Unter Basic hab ich kein problem mit dem oben geposteten code schnipsel gruss Emil |
Re: Key abfrage
Zitat:
Delphi-Quellcode:
Alternativ:
if GetAsyncKeyState(33) and 128 = 128 then
Delphi-Quellcode:
if GetAsyncKeyState(33) < 0 then
|
Re: Key abfrage
Zitat:
Warum muss ich hier eine IF abfrage stellen ich übergebe doch den wert
Delphi-Quellcode:
IsLButtonDown übergibt den wert 1 und ich erwarte von meiner Funktion die rückgabe wie der status ist
function IsKeyDown(CheckKey: Integer): SmallInt;
begin result := (GetAsyncKeyState(CheckKey) and 15); end; function IsLButtonDown: Integer; begin Result := IsKeyDown(1); end; also in dem Fall
Delphi-Quellcode:
Wie sollte es deiner meinung nach funktionieren ?
result := (GetAsyncKeyState(1) and 15);
Delphi-Quellcode:
Ich brauche doch die IF abfrage nicht..
result := (GetAsyncKeyState(1) and 128); ?
Oder wir reden aneinander vorbei ;) Danke für deine Hilfe .. habs vergessen gruss Emil |
Re: Key abfrage
Du hast alle deine Funktionen mit einem SmallInt bzw. Integer versehen.
Delphi-Quellcode:
Solche Funktionen sind überhaupt nicht aussagekräftig und macht es einem um so schwerer dir zu helfen. Mit was wird denn das Result nach dem Aufruf verglichen? Mit 14? 55? 42? oder gleich mit Random(MaxInt)?
function IsLButtonDown: Integer;
begin Result := IsKeyDown(1); end; Was willst du denn nun eigentlich haben? Doch eigentlich ein boolsches Ergebnis, oder nicht? Wenn ja, dann einfach die IF Abfrage komplett auf eine einzeilige Evaluierung umstellen, da die IF Abfrage einen boolschen Ausdruck braucht, ist das einfach gemacht:
Delphi-Quellcode:
Alternativen:
function IsLButtonDown: boolean;
begin result := ( GetAsyncKeyState(VK_LBUTTON) and 128 ) <> 0; end;
Delphi-Quellcode:
function IsLButtonDown: boolean;
begin result := ( GetAsyncKeyState(VK_LBUTTON) and 128 ) = 128; end;
Delphi-Quellcode:
function IsLButtonDown: boolean;
begin result := GetAsyncKeyState(VK_LBUTTON) < 0; end; |
Re: Key abfrage
Hallo,
nur am Rande bemerkt: 1 shl 15 <> 128 Gruß Hawkeye |
Re: Key abfrage
@Roachford
Zitat:
Delphi-Quellcode:
Solche veralteten Methoden(variablen) wie Boolean wirst du in PowerBasic nicht mehr finden.
function IsKeyDown(CheckKey: Integer): SmallInt;
begin result := (GetAsyncKeyState(CheckKey) and 15); end; function IsLButtonDown: Integer; begin Result := IsKeyDown(1); // 1 <<<<<<< selbe wie VK_LBUTTON davon der aktuelle status zurück geliefert // was ist da nicht verständlich.. hmm end; Aber egal trotzdem danke für deine Hilfe. gruss Emil |
Re: Key abfrage
Zitat:
Zitat:
Zitat:
Und um nochmal auf den richtigen Einwand von Hawkeye219 einzugehen, ersetze in den Codes von mir bitte die 128 mit 32768. Danke! |
Re: Key abfrage
Zitat:
Mich interessiert letztendlich nur der positive oder negative wert. da reicht ein vergleich auf < 0 .. völlig aus Einen schönen Abend noch und Danke für die Hilfe. gruss Emil |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:52 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