Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Detectar qué Joystick se presionó (https://www.clubdelphi.com/foros/showthread.php?t=94104)

MaxiDucoli 05-08-2019 00:32:00

Detectar qué Joystick se presionó
 
Hola.
Hay alguna manera de saber qué Joystick (en qué puerto, cual fue o lo que sea que se detecte automáticamente) se presionó ?

O sea, tengo 4 Joysticks, uso TJoyInfoEx y por lo que entiendo solo soporta 2 ID que son JOYSTICKID1 o JOYSTICKID2.
Pero en los CAPS de esos JOYSTICKSID1 o JOYSTICKSID2 me dice que soporta 16 Devices, por lo que entiendo el driver soporta 16 joysticks.

Lo que no sé es como hacer para interactuar con cada uno de mis Joysticks.
Que al presionar un botón en cualquiera de ellos, sepa cuál fue de manera "automática" (ya sé que la automática se la doy yo, pero no sé como) o algo parecido.

No encuentro info clara por ningún lado de internet o quizás los que explican como lo entienden creen que está claro en su página y no lo capto.

Alguien podría ayudarme con esto, por favor?

Sé hacer "andar" en Joystick, los botones, PAD y AXIS, pero no sé cuál es cuál y no sé cambiar el puerto para saber cual es cual.

Si me dan código se los agradeceré mucho,

Saludos!!!!!

dec 05-08-2019 08:45:49

Hola a todos,

Acaso alguna vez usé "TJoyInfoEx", pero, únicamente para probar. Normalmente, los componentes de este tipo, en sus eventos "Press Joystick", por ejemplo, envían el "Joystick" como "Sender", o, en todo caso, envían información al evento en cuestión, que, quizá puedas utilizar.

Por ejemplo, existe un componente "NLDJoystick", que, puede descargarse desde aquí. Fíjate en el siguiente evento de este componente:

Código Delphi [-]
 TJoyButtonEvent = procedure(Sender: TNLDJoystick; const Buttons: TJoyButtons) of object;

Como ves, en principio dicho evento nos envía un "Sender" de tipo "TNLDJoystick", que, si no me equivoco, indica el "Joystick" que ha disparado el evento. Tal vez esto sea parecedido en el componente "TJoyInfoEx". No sé si te servirá de algo esta información, pero, espero que al menos un poco sí.

MaxiDucoli 05-08-2019 22:57:24

Hola. Gracias por responder.
El componente que me indicas solo soporta 2 Joysticks y necesito hasta 4.

Quizás esté errado y con un solo componente usando algún ID o algo se pueda ir cambiando y soporte muchos.

TJoyInfoEx lo probé, pero a la hora de ver el nombre del dispositivo me dá el driver de Windows y no me sirve (capaz se pueda hacer algo con eso y saber más, pero no sé como) y ese tiene un DevideID que es o JOSTICKID1 o JOYSTICKID2 que también son dos joysticks.
Creo que le estoy errando ahí, es eso que es lo que no entiendo y probé varias cosas y nada.
Siento que estoy cerca, pero que me falta que me haga ese "CLICK" en la cabeza, que es el click de cuando empieza a fluir idea tras idea y de ahí sale el como.. :p

Lo voy a seguir investigando a ver que onda.

Te cuento que quiero hacer un "traductor" de configuración de botones para RetroArch, PCSX2 y algún otro emulador que con solo presionar los botones del Joy que queremos usar, no haga el archivo config para esos emuladores.

Gracias por la ayuda!!!!!


La franja horaria es GMT +2. Ahora son las 08:20:33.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi