JOYINFOEX

Aus API-Wiki
Wechseln zu: Navigation, Suche
Public Type JOYINFOEX
   dwSize As Long 
   dwFlags As Long 
   dwXpos As Long 
   dwYpos As Long 
   dwZpos As Long 
   dwRpos As Long 
   dwUpos As Long 
   dwVpos As Long 
   dwButtons As Long 
   dwButtonNumber As Long 
   dwPOV As Long 
   dwReserved1 As Long 
   dwReserved2 As Long 
End Type

dwSize

Die korrekte Länge der Struktur, wird üblicherweise per Len() angegeben:
JIE.dwSize = Len(JIE)

dwFlags

Auflistung der abzufragenden Werte. Möglich sind:
Const JOY_RETURNALL = (JOY_RETURNX Or JOY_RETURNY Or JOY_RETURNZ Or JOY_RETURNR Or JOY_RETURNU Or JOY_RETURNV Or JOY_RETURNPOV Or JOY_RETURNBUTTONS)
Const JOY_RETURNBUTTONS = 128
Const JOY_RETURNCENTERED = 1024
Const JOY_RETURNPOV = 64
Const JOY_RETURNPOVCTS = 512
Const JOY_RETURNRAWDATA = 256
Const JOY_RETURNX = 1
Const JOY_RETURNY = 2
Const JOY_RETURNZ = 4
Const JOY_RETURNR = 8
Const JOY_RETURNU = 16
Const JOY_RETURNV = 32
Const JOY_USEDEADZONE = 2048
Weiterhin sind noch Flags mit dem Namen JOY_CAL_* möglich, die allerdings nur für spezielle Programme zum Kalibrieren des Joysticks vorgesehen sind. Diese Flags können in der MSDN eingesehen werden.

dwXPos

Die momentane X-Position des Joysticks

dwYPos

Die momentane Y-Position des Joysticks

dwZPos

Die momentane Z-Position des Joysticks

dwRPos

Die momentane R-Position (vierte Achse) des Joysticks

dwUPos

Die momentane U-Position (fünfte Achse) des Joysticks

dwVPos

Die momentane V-Position (sechste Achse) des Joysticks

dwButtons

Auflistung der Zustände von bis zu 32 Knöpfen auf dem Joystick. Durch einen Abgleich mit JOY_BUTTONn mit
Const JOY_BUTTONn = 2 ^ (n - 1)

lässt sich abfragen, welcher Knopf gedrückt ist:

Const JOY_BUTTON1 = 1 ' 2 ^ (1 - 1) = 1
Const JOY_BUTTON2 = 2 ' 2 ^ (2 - 1) = 2
Const JOY_BUTTON3 = 4 ' 2 ^ (3 - 1) = 4
Const JOY_BUTTON4 = 8 ' 2 ^ (4 - 1) = 8

If (JIE.dwButtons And JOY_BUTTON1) <> 0 Then
   ' Knopf 1 ist gedrückt
End If

dwButtonNumber

Die Anzahl momentan gedrückter Knöpfe

dwPOV

Momentaner Zustand des Point-Of-View-Elements. Der Wert von dwPOV rangiert zwischen 0 und 35.900 und repräsentiert den aktuellen Winkel multipliziert mit 100, der aktuelle Winkel lässt sich also folgendermaßen bestimmen:
Dim POVAngle As Double

POVAngle = CDbl(JIE.dwPOV / 100)

dwReserved1

Reservierter Speicher in der Struktur. Darf nicht verwendet werden.

dwReserved2

Reservierter Speicher in der Struktur. Darf nicht verwendet werden.

Quellen

MSDN Library - JOYINFOEX

freepascal.org - Reference for unit 'mmsystem': Constants