マウスを使用してオブジェクトを X と Y に目で合わせて位置を合わせたいと思います。さまざまなスピン コントロール (またはボタン) を使用してソリューションをロールすることができますが、それは面倒です。ジョイスティックのような、マウスを使用して 2 軸制御を提供し、速度に応じて異なる速度でイベントを発生させるコントロールがあるかどうか疑問に思いました。その位置?
3304 次
5 に答える
3
Afaik Jedi(jedi apilib?)にもジョイスティックヘッダーがありました。これはCOMではなくwinapiであるため、TLBは含まれません
于 2010-01-06T12:56:55.997 に答える
3
NLDJoystickを試してみてください。これは私が書いたオープンソース コンポーネントで、純粋な WinAPI (MMSystem.pas) に基づいています。GitHubからダウンロードできます。
インターフェース:
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
property AbsCenter;
property AbsMax;
property AbsMin;
property Active default False;
property Advanced default False;
property AxisCount;
property Axises;
property ButtonCount;
property HasPOV;
property ID;
property OnButtonDown;
property OnButtonUp;
property OnMove;
property OnPOVChanged;
property PollingInterval default 40;
property RepeatButtonDelay default 350;
property RepeatMoveDelay default 350;
property SuspendScreensaver default False;
property ThresholdFactor;
于 2011-10-25T14:29:52.637 に答える
1
たぶん、あなたはそのようなものを自分で作ることができます。
- パネルを取り、マウスの上下移動イベントに登録します
- MouseDownで、ブール値(fButtonDown)を設定して、マウスボタンが押されたことを確認し、マウスポインターのX座標とY座標を保存します。
- MouseMoveで、ボタンが下がっているかどうか(fButtonDown)を確認し、オブジェクトを移動します。マウスカーソルを保存した位置から移動すればするほど、移動速度は速くなります。
- MouseUpで、fButtonDownをfalseに設定します
上記は非常に原始的ですが、機能するはずです。
于 2010-01-06T15:18:26.070 に答える
0
DelphiX コンポーネントを使用できます。これらは DirectX のラッパーであり、そのうちの 1 つは DirectX ジョイスティック インターフェイスをラップするものです。Delphi スタイルでラップされるので、使いやすいです。
于 2010-01-06T10:25:02.637 に答える
0
「ジョイスティック dll」を Google で検索したところ、無数に見つかりました。おそらく、これらのいずれかをプロジェクトに投入し、TLIB ヘッダーを記述するだけで Delphi から C API にアクセスできます(または、それが何と呼ばれていても、しばらくこれを行っていません)。
于 2010-01-06T09:58:29.527 に答える