Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - TControl.OnMouseDown - 2 Tasten gleichzeitig gedrückt?


Dunkel - Mo 09.04.07 22:46
Titel: TControl.OnMouseDown - 2 Tasten gleichzeitig gedrückt?
Hallo zusammen!

Ich hab da mal ein kurze Frage:

Ist es möglich zu erfahren, ob 2 Mousetasten gleichzeitig gedrückt sind?

Ich habe nichts entsprechendes gefunden, vermute schon fast, dass das nicht möglich ist.


Shorty - Mo 09.04.07 22:55

Du kannst ein globales Array of Boolean machen, mit der Länge 0..255, in dem du dann in einem OnKeyDown-Ereignis die Stelle der gedrückten Taste (ASCII-Nummer) auf true setzt und dementsprechend im OnKeyUp-ereignis wieder auf False setzt.
Abfragen könnte man das dann so:

Delphi-Quelltext
1:
if Keys[ord('W')] = true then ...                    

MfG Shorty


Dunkel - Mo 09.04.07 23:09

user profile iconShorty hat folgendes geschrieben:
Du kannst ein globales Array of Boolean machen, mit der Länge 0..255, in dem du dann in einem OnKeyDown-Ereignis die Stelle der gedrückten Taste (ASCII-Nummer) auf true setzt und dementsprechend im OnKeyUp-ereignis wieder auf False setzt.
Abfragen könnte man das dann so:

Delphi-Quelltext
1:
if Keys[ord('W')] = true then ...                    

MfG Shorty

OK, eigentlich habe ich nicht nach den Tastatur-Tasten gefragt, trotzdem Danke!

Ein wenig intensivere Suche in der OH, und ich habe TShiftState gefunden. Damit sollte es eigentlich funktionieren, hoffe ich...


Shorty - Mo 09.04.07 23:26

Oha, so spät nachts, ich kann schon garnich mehr richtig lesen :oops:
Naja, wenns nur Maustasten sind, geht das auf jeden Fall mit TShiftState, man muss ja nur überprüfen, ob die jeweiligen Tasten in Shift ist :wink: