Windows Lightweight Input Library for Free Pascal / Lazarus
PetitInput は、Free Pascal / Lazarus環境でWindows API (WinMM) をベースとした、Pascal 用軽量入力制御ライブラリです。キーボード、マウス、ゲームパッド(ホットプラグ対応)を統合的に管理します。
TPetitInput は、対象となるウィンドウのハンドル HWND を必要とします。
var
Input: TPetitInput;
begin
Input := TPetitInput.Create(Draw.Handle); // 初期化
// ... メインループ内 ...
Input.Update; // 毎フレーム最初に呼び出す
| プロパティ名 | 型 | 説明 |
|---|---|---|
MouseX / MouseY | Integer | ウィンドウ内のマウスカーソル座標 |
DeltaX / DeltaY | Integer | 前フレームからのマウス移動量(ドラッグ計算用) |
Wheel | Integer | ホイール回転量(120単位、奥が正、手前が負) |
HasPad | Boolean | ゲームパッドが現在接続されているか |
Handle | HWND | 紐付けられているウィンドウハンドル |
| メソッド名 | 引数 | 判定タイミング |
|---|---|---|
IsKeyDown(VK) | 仮想キーコード | 押されている間ずっと True |
IsKeyTrigger(VK) | 仮想キーコード | 押された瞬間のみ True |
IsKeyRelease(VK) | 仮想キーコード | 離された瞬間のみ True |
IsMouseDown(Btn) | MOUSE定数 | ボタンが押されている間ずっと True |
IsMouseTrigger(Btn) | MOUSE定数 | ボタンが押された瞬間のみ True |
IsMouseIn(x, y, w, h) | 範囲座標 | マウスが指定矩形内にあるか |
| メソッド名 | 引数 | 説明 |
|---|---|---|
IsPadDown(Mask) | PAD定数 | ボタンまたは方向キーが押されている間 True |
IsPadTrigger(Mask) | PAD定数 | ボタンまたは方向キーが押された瞬間のみ True |
MOUSE_LEFT, MOUSE_RIGHT, MOUSE_MIDDLE
PAD_UP, PAD_DOWN, PAD_LEFT, PAD_RIGHTPAD_BUTTON1 〜 PAD_BUTTON6
本ライブラリは、アプリケーション実行中にゲームパッドが抜き差しされた場合でも、Update メソッド内で自動的に再検出を試みます。特別な切断処理の実装は不要です。