Delphi で JoyPad を使う 2020/10/09
Delphi (Windows API) で XBOX 360 コントローラを使うサンプルです。
情報元は、「Delphi でゲームコントローラーを扱う (Windows API)」 by DEKO 様です。
※数値が表示されるだけで、実用性はありません。

■ダウンロード : joyPadTest.zip (EXE 本体のみ)
デバイスマネージャーで 「XBOX 360 Controller For Windows」と表示されていれば使用できます。

{
Delphi 10.3 Professional
参考 URL :
Delphi でゲームコントローラーを扱う (Windows API)
by DEKO 様
https://qiita.com/ht_deko/items/7b2d0ca7dfd48fbc60ea
}
unit joyPadUnit;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Winapi.MMSystem, Vcl.ExtCtrls,
Vcl.StdCtrls ;
type
TForm7 = class(TForm)
Timer1: TTimer;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Label7: TLabel;
Edit7: TEdit;
Edit8: TEdit;
Edit9: TEdit;
Edit10: TEdit;
Edit11: TEdit;
Edit12: TEdit;
Edit13: TEdit;
Edit14: TEdit;
Label8: TLabel;
Label9: TLabel;
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private 宣言 }
public
{ Public 宣言 }
end;
var
Form7: TForm7;
implementation
{$R *.dfm}
procedure TForm7.FormCreate(Sender: TObject);
begin
Label1.Caption := 'wXpos :';
Label2.Caption := 'wYpos :';
Label3.Caption := 'wZpos :';
Label4.Caption := 'wButtons :';
Label5.Caption := 'dwRpos :';
Label6.Caption := 'dwUpos :';
Label7.Caption := 'dwPOV :';
Timer1.Interval := 200;
end;
procedure TForm7.Timer1Timer(Sender: TObject);
// uses ,,, Winapi.MMSystem;
var
JoyInfoEx: TJoyInfoEx;
begin
JoyInfoEx.dwSize := SizeOf(JoyInfoEx);
JoyInfoEx.dwFlags := JOY_RETURNALL;
if joyGetPosEx(JOYSTICKID1, @JoyInfoEx) <> JOYERR_NOERROR then
Exit;
Edit1.Text := JoyInfoEx.wXpos.ToHexString;
Edit2.Text := JoyInfoEx.wYpos.ToHexString;
Edit3.Text := JoyInfoEx.wZpos.ToHexString;
Edit4.Text := JoyInfoEx.wButtons.ToHexString;
Edit5.Text := JoyInfoEx.dwRpos.ToHexString;
Edit6.Text := JoyInfoEx.dwUpos.ToHexString;
Edit7.Text := JoyInfoEx.dwPOV.ToHexString;
Edit8.Text := JoyInfoEx.wXpos.ToString;
Edit9.Text := JoyInfoEx.wYpos.ToString;
Edit10.Text := JoyInfoEx.wZpos.ToString;
Edit11.Text := JoyInfoEx.wButtons.ToString;
Edit12.Text := JoyInfoEx.dwRpos.ToString;
Edit13.Text := JoyInfoEx.dwUpos.ToString;
Edit14.Text := JoyInfoEx.dwPOV.ToString;
end;
end.