AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte [Klasse] TJoystick - alles in einer kleinen Unit!
Thema durchsuchen
Ansicht
Themen-Optionen

[Klasse] TJoystick - alles in einer kleinen Unit!

Ein Thema von LDericher · begonnen am 2. Mai 2009 · letzter Beitrag vom 20. Sep 2009
Antwort Antwort
Benutzerbild von LDericher
LDericher
Registriert seit: 29. Jan 2007
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.
Angehängte Dateien
Dateityp: pas mtjoystick_479.pas (9,1 KB, 22x aufgerufen)
 
Benutzerbild von Jakob Ullmann
Jakob Ullmann

 
Lazarus
 
#2
  Alt 2. Mai 2009, 19:07
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.
Jakob
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

 
Delphi 2009 Professional
 
#3
  Alt 2. Mai 2009, 19:19
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?
Manuel
  Mit Zitat antworten Zitat
Benutzerbild von LDericher
LDericher

 
Delphi 7 Enterprise
 
#4
  Alt 2. Mai 2009, 19:27
Hey, danke für eure schnellen Rückmeldungen!

@Die Muhkuh
Gute Idee, aber da ich kein Vista benutze, bin ich selbst schonmal nicht betroffen
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
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

 
Delphi 2009 Professional
 
#5
  Alt 2. Mai 2009, 19:31
Du machst Force Feedback und ich bau meinen Vorschlag selbst ein?
Manuel
  Mit Zitat antworten Zitat
Benutzerbild von LDericher
LDericher

 
Delphi 7 Enterprise
 
#6
  Alt 2. Mai 2009, 19:34
Wenn du eine Ahnung hast, wie FF implementiert wird, gerne
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

 
Delphi 2009 Professional
 
#7
  Alt 2. Mai 2009, 19:35
Lies meinen Satz richtig
Manuel
  Mit Zitat antworten Zitat
Benutzerbild von LDericher
LDericher

 
Delphi 7 Enterprise
 
#8
  Alt 2. Mai 2009, 19:40
Zitat von Die Muhkuh:
|Du{Ich} machst{baust ein:} Force Feedback| und |ich bau meinen Vorschlag selbst ein?{"?" - "Machen wir das so?") |
Oder nicht?
  Mit Zitat antworten Zitat
Benutzerbild von igel457
igel457

 
FreePascal / Lazarus
 
#9
  Alt 2. Mai 2009, 19:43
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...
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von LDericher
LDericher

 
Delphi 7 Enterprise
 
#10
  Alt 20. Sep 2009, 18:02
So, ich hab jetzt mal ne Komponente draus gebastelt

Siehe Anhang^^

Gruß vom LDer.
Angehängte Dateien
Dateityp: zip joystick-komponente_310.zip (12,5 KB, 22x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:15 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