Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   [Klasse] TJoystick - alles in einer kleinen Unit! (https://www.delphipraxis.net/133472-%5Bklasse%5D-tjoystick-alles-einer-kleinen-unit.html)

LDericher 2. Mai 2009 17:30


[Klasse] TJoystick - alles in einer kleinen Unit!
 
Liste der Anhänge anzeigen (Anzahl: 1)
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.

Jakob Ullmann 2. Mai 2009 19:07

Re: [Klasse] TJoystick - alles in einer kleinen Unit!
 
Zitat:

Zitat von Superwinger
Force Feedback wird nicht unterstützt, ist aber auch meinerseits nicht geplant.

Das ist schade, sonst hätte ich jetzt die Unit getestet; da ich aber nur Force Feedback habe, geht das natürlich nicht.

Die Muhkuh 2. Mai 2009 19:19

Re: [Klasse] TJoystick - alles in einer kleinen Unit!
 
Zitat:

Zitat von Superwinger
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.

Da hast Du bei Vista schon verloren. Wie wäre es, wenn man Pfade einstellen kann und ob man das ganze überhaupt speichern möchte?

LDericher 2. Mai 2009 19:27

Re: [Klasse] TJoystick - alles in einer kleinen Unit!
 
Hey, danke für eure schnellen Rückmeldungen!

@Die Muhkuh
Gute Idee, aber da ich kein Vista benutze, bin ich selbst schonmal nicht betroffen :P
Bau' du es doch ein ;)
Nee, ehrlich, werde ich wohl bald machen, wenn mir keiner zuvorkommt...

@Jakob Ullmann
Ebenso Force Feedback - vielleicht als Extra... Wenn sich wer findet, gut, oder ich hab halt mal Langeweile ;)

Das ganze ist halt Teil eines größeren Projektes, und das wird erstmal gebaut bevor ich die Klasse verfeinere.

Gruuß vom LDer

Die Muhkuh 2. Mai 2009 19:31

Re: [Klasse] TJoystick - alles in einer kleinen Unit!
 
Du machst Force Feedback und ich bau meinen Vorschlag selbst ein? ;)

LDericher 2. Mai 2009 19:34

Re: [Klasse] TJoystick - alles in einer kleinen Unit!
 
Wenn du eine Ahnung hast, wie FF implementiert wird, gerne ;)

Die Muhkuh 2. Mai 2009 19:35

Re: [Klasse] TJoystick - alles in einer kleinen Unit!
 
Lies meinen Satz richtig :stupid:

LDericher 2. Mai 2009 19:40

Re: [Klasse] TJoystick - alles in einer kleinen Unit!
 
Zitat:

Zitat von Die Muhkuh
|Du{Ich} machst{baust ein:} Force Feedback| und |ich bau meinen Vorschlag selbst ein?{"?" - "Machen wir das so?") ;)|

Oder nicht?

igel457 2. Mai 2009 19:43

Re: [Klasse] TJoystick - alles in einer kleinen Unit!
 
Soweit ich weiß, ist Force Feedback nur mit DirectInput möglich. Mit den Joystick-Befehlen aus der MMSystem.pas (IMHO übrigens nicht mehr verwendet werden sollten, da Überrest aus Windows 3.1) kommst du da nicht viel weiter...

LDericher 20. Sep 2009 18:02

Re: [Klasse] TJoystick - alles in einer kleinen Unit!
 
Liste der Anhänge anzeigen (Anzahl: 1)
So, ich hab jetzt mal ne Komponente draus gebastelt :)

Siehe Anhang^^

Gruß vom LDer.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:21 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz