JOYINFOEX: Unterschied zwischen den Versionen

Aus API-Wiki
Wechseln zu: Navigation, Suche
 
Zeile 1: Zeile 1:
 
__NOTOC__
 
__NOTOC__
<<syntaxhighlight lang="vb">>Public Type JOYINFOEX
+
<syntaxhighlight lang="vb">Public Type JOYINFOEX
 
   dwSize As Long  
 
   dwSize As Long  
 
   dwFlags As Long  
 
   dwFlags As Long  
Zeile 14: Zeile 14:
 
   dwReserved1 As Long  
 
   dwReserved1 As Long  
 
   dwReserved2 As Long  
 
   dwReserved2 As Long  
End Type</<syntaxhighlight lang="vb">>
+
End Type</syntaxhighlight>
  
 
''dwSize''
 
''dwSize''
 
:Die korrekte Länge der Struktur, wird üblicherweise per Len() angegeben:
 
:Die korrekte Länge der Struktur, wird üblicherweise per Len() angegeben:
<<syntaxhighlight lang="vb">>JIE.dwSize = Len(JIE)</<syntaxhighlight lang="vb">>
+
<syntaxhighlight lang="vb">JIE.dwSize = Len(JIE)</syntaxhighlight>
  
 
''dwFlags''
 
''dwFlags''
 
:Auflistung der abzufragenden Werte. Möglich sind:
 
:Auflistung der abzufragenden Werte. Möglich sind:
  
<<syntaxhighlight lang="vb">>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)
+
<syntaxhighlight lang="vb">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_RETURNBUTTONS = 128
 
Const JOY_RETURNCENTERED = 1024
 
Const JOY_RETURNCENTERED = 1024
Zeile 35: Zeile 35:
 
Const JOY_RETURNU = 16
 
Const JOY_RETURNU = 16
 
Const JOY_RETURNV = 32
 
Const JOY_RETURNV = 32
Const JOY_USEDEADZONE = 2048</<syntaxhighlight lang="vb">>
+
Const JOY_USEDEADZONE = 2048</syntaxhighlight>
 
: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 [http://msdn.microsoft.com/en-us/library/ms709358(VS.85).aspx MSDN] eingesehen werden.
 
: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 [http://msdn.microsoft.com/en-us/library/ms709358(VS.85).aspx MSDN] eingesehen werden.
  
Zeile 59: Zeile 59:
 
:Auflistung der Zustände von bis zu 32 Knöpfen auf dem Joystick. Durch einen Abgleich mit JOY_BUTTONn mit
 
:Auflistung der Zustände von bis zu 32 Knöpfen auf dem Joystick. Durch einen Abgleich mit JOY_BUTTONn mit
  
<<syntaxhighlight lang="vb">>Const JOY_BUTTONn = 2 ^ (n - 1)</<syntaxhighlight lang="vb">>
+
<syntaxhighlight lang="vb">Const JOY_BUTTONn = 2 ^ (n - 1)</syntaxhighlight>
  
 
lässt sich abfragen, welcher Knopf gedrückt ist:
 
lässt sich abfragen, welcher Knopf gedrückt ist:
  
<<syntaxhighlight lang="vb">>Const JOY_BUTTON1 = 1 ' 2 ^ (1 - 1) = 1
+
<syntaxhighlight lang="vb">Const JOY_BUTTON1 = 1 ' 2 ^ (1 - 1) = 1
 
Const JOY_BUTTON2 = 2 ' 2 ^ (2 - 1) = 2
 
Const JOY_BUTTON2 = 2 ' 2 ^ (2 - 1) = 2
 
Const JOY_BUTTON3 = 4 ' 2 ^ (3 - 1) = 4
 
Const JOY_BUTTON3 = 4 ' 2 ^ (3 - 1) = 4
Zeile 70: Zeile 70:
 
If (JIE.dwButtons And JOY_BUTTON1) <> 0 Then
 
If (JIE.dwButtons And JOY_BUTTON1) <> 0 Then
 
   ' Knopf 1 ist gedrückt
 
   ' Knopf 1 ist gedrückt
End If</<syntaxhighlight lang="vb">>
+
End If</syntaxhighlight>
  
 
''dwButtonNumber''
 
''dwButtonNumber''
Zeile 78: Zeile 78:
 
: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:
 
: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:
  
<<syntaxhighlight lang="vb">>Dim POVAngle As Double
+
<syntaxhighlight lang="vb">Dim POVAngle As Double
  
POVAngle = CDbl(JIE.dwPOV / 100)</<syntaxhighlight lang="vb">>
+
POVAngle = CDbl(JIE.dwPOV / 100)</syntaxhighlight>
  
 
''dwReserved1''
 
''dwReserved1''

Aktuelle Version vom 5. November 2016, 23:47 Uhr

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