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.