Hallo
DP!
Hier meine Lösung zur Einbindung eines Joysticks in Delphi-Programme.
Ist sehr allgemein gehalten und darf meinetwegen auch verändert werden: Force Feedback wird nicht unterstützt, ist aber auch meinerseits nicht geplant.
Kommentare sind noch nicht vorhanden - geplant aber kann dauern.
Viel Spaß damit wünscht euch
Euer LDer.
P.S.: Ich schreibe doch mal schnell eine Kurz-Anleitung:
Delphi-Quellcode:
//Objekt erstellen
Joy:=TJoystick.Create;
//Reaktionszeit einstellen
Joy.PollInterval:=10;
//Achsenhandling einstellen:
////htSlider: Event OnAxis wird aufgerufen, sobald die Achse bewegt wird (Standard)
////htAxis: Event OnAxis wird bei jedem Polling (zuvor eingestellt) aufgerufen.
Joy.Handling[aX]:=htAxis;
Joy.Handling[aY]:=htAxis;
//Zuweisen der Events (Standard: nil):
////TButtonProc=procedure(pButton:TButtonNumber; State:TButtonState)of object;
//////pButton: Der Button, der das Event ausgelöst hat (0..31)
//////State: Neuer Status von pButton (0: losgelassen, 1: gedrückt)
////TAxisProc=procedure(pAxis:TAxis; State:TAxisState)of object;
//////pAxis: Die Achse, die das Event ausgelöst hat (0..7)|(aX, aY, aZ, aR, aU, aV, povX, povY)
//////State: Neuer Status von pAxis (-100: ganz nach links/unten bewegt ... 0: zentriert ... 100: ganz nach rechts/oben bewegt)
Joy.OnButton:=Self.ButtonEvent;
Joy.OnAxis:=Self.AxisEvent;
Sobald das Objekt freigegeben wird, speichert es alle seine Daten in 'Joystick.ini' im Programmverzeichnis. Beim Erstellen einer neuen Instanz werden diese Einstellungen geladen, falls vorhanden.