私は検索して見つけましたHow can I see who triggered an action in Delphi?Delphiでジェスチャースタンダードアクションをトリガーした人はどうすればわかりますか?
その解決策はTAction.ActionComponentを使用しています。
私はTGestureManagerを持つフォームを用意しています。標準的なジェスチャー(例えば、左右)をアクションで設定しています。
今実行イベントでは、何をすべきかを決定できるように、どのコンポーネントがジェスチャを初期化したのかを知ることは良いことです。 (たとえば、2つのパネルがあり、どのパネルをスクロールするかを知る必要があります)。
ただし、TAction.ActionComponentはこの場合はnilです。
私はOnGestureを試しましたが、ジェスチャーはそのイベントをトリガーしないと定義し、送信者は常にフォームそのものです。
だから、どのコンポーネントがそのジェスチャーアクションをトリガーしたのか分かりますか?
ありがとうございます。
真実は、 'TActionManager.OnExecute'イベントパラメータ' Action.ActionComponent = nil'ですが、アクション自体が実行されています。あなたがなぜアクション( 'TAction')を使用したいのか、そして' GestureID'か何かを手掛かりにしているのかどうか分かりません。特定のコンポーネントのジェスチャーに「TAction」を割り当てて実行するだけで、それが実行されます。 – TLama
元の質問を読んだら、割り当てられたアクションで実行されたときに見つけられないコントロールからのジェスチャー開始を知りたいと思うことがわかります。 – Justmade