It is surprisingly easy to add joystick support to your Firemonkey app on Windows. Here is a nice third party component by WINSOFT for Delphi and C++ Builder for retrieving joystick position and status for any keys.
You can use wired or wireless joystick for your application like games, audio/video players and other application. I have tested this delphi component on a recent Windows 10. All functionality corresponds to the declared. All buttons my joystick successful detected. Also works analog sticks. Now let’s view this demo (included to instalation packeges)
The first thing you need to do is install component to Delphi. It’s very fast and simple! Look this video.
Demo included to component package. Now let’s look at the stages of working with a component.
# 1 stage – Enumerate controlers
1 2 3 |
for I := 0 to FJoystick.ControllerCount - 1 do if FJoystick.Attached[I] then ComboBox.Items.Add(FJoystick.ControllerName[I]); |
# 2 stage – Connect to controler and get value ranges
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
FJoystick.Controller := ComboBox.ItemIndex; FJoystick.Active := True; MinX := FJoystick.Capabilities.MinX; MaxX := FJoystick.Capabilities.MaxX; MinY := FJoystick.Capabilities.MinY; MaxY := FJoystick.Capabilities.MaxY; ProgressBarR.Min := FJoystick.Capabilities.MinR; ProgressBarR.Max := FJoystick.Capabilities.MaxR; ProgressBarU.Min := FJoystick.Capabilities.MinU; ProgressBarU.Max := FJoystick.Capabilities.MaxU; ProgressBarV.Min := FJoystick.Capabilities.MinV; ProgressBarV.Max := FJoystick.Capabilities.MaxV; ProgressBarZ.Min := FJoystick.Capabilities.MinZ; ProgressBarZ.Max := FJoystick.Capabilities.MaxZ; |
# 3 stage – Now we can read current values from controller anytime.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
if FJoystick.Active then begin SetColor(ColorBoxButton5, joButton5 in FJoystick.PressedButtons); SetColor(ColorBoxButton6, joButton6 in FJoystick.PressedButtons); SetColor(ColorBoxButton7, joButton7 in FJoystick.PressedButtons); SetColor(ColorBoxButton8, joButton8 in FJoystick.PressedButtons); SetColor(ColorBoxButton9, joButton9 in FJoystick.PressedButtons); SetColor(ColorBoxButton10, joButton10 in FJoystick.PressedButtons); SetColor(ColorBoxButton11, joButton11 in FJoystick.PressedButtons); SetColor(ColorBoxButton12, joButton12 in FJoystick.PressedButtons); SetColor(ColorBoxButton13, joButton13 in FJoystick.PressedButtons); SetColor(ColorBoxButton14, joButton14 in FJoystick.PressedButtons); SetColor(ColorBoxButton15, joButton15 in FJoystick.PressedButtons); SetColor(ColorBoxButton16, joButton16 in FJoystick.PressedButtons); ProgressBarR.Value := FJoystick.PositionR; ProgressBarU.Value := FJoystick.PositionU; ProgressBarV.Value := FJoystick.PositionV; end; |
This component was developed by WINSOFT.
The component uses the DirectX API
This component has both versions for FireMonkey and for VCL applications to Delphi / C ++ Builder 10 – 10.4.
Works with: Delphi, C ++ Builder, RAD Server, FireMonkey, VCL
Works on: Windows 32-bit, Windows 64-bit
Source code included in registered version. Royalty free distribution with application without any limitation.
Related links
Here is packages for VCL and Firemonkey:
Joystick
Joystick for FireMonkey
DirectX Joystick
DirectX Joystick for FireMonkey
Design. Code. Compile. Deploy.
Start Free Trial Upgrade Today
Free Delphi Community Edition Free C++Builder Community Edition