1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

PowerAppsでダブルタップ(ダブルクリック)する

Posted at

はじめに

PowerAppsでダブルタップしたかったので調べたのですが、なさそうなのでつくりました。

Screenshot from Gyazo
わかりにくいですね。。。

やり方

全体の配置

Screenshot from Gyazo

役割 コントロール コントロール名 既定から変更する
固定プロパティ
ダブルタップ間隔判定 タイマー TmrDT Visible=false
状態リセット ボタン BtnReset Visible=false
タップするボタン ボタン BtnTap
ダブルタップ後に出すボタン ボタン BtnDTclose

スクリーン

DoubleTapCheck.OnVisible
Select(BtnReset);
UpdateContext({FlgPrint:false})

タイマー(TmrDT)

非表示にしてどこかに置いておきます。
繰り返し、自動開始はデフォルトのまま false にしておきます。
ダブルタップの間隔はDurationで調整します(今回は300msec)

TmrDT.OnTimerStart
UpdateContext({FlgDblTap:true}) 
TmrDT.OnTimerEnd
Select(BtnReset);
UpdateContext({FlgPrint:false})
TmrDT.Start
FlgStartTimer
TmrDT.Duration
300

リセットボタン(BtnReset)

非表示にしてどこかに置いておきます。

BtnReset.OnSelect
UpdateContext({FlgDblTap:false,FlgStartTimer:false});
Reset(TmrDT)

ダブルタップするボタン(BtnTap)

BtnTAP.OnSelect
UpdateContext({FlgStartTimer: true});
If(FlgDblTap ,Select(BtnReset);UpdateContext({FlgPrint:true}) )

ダブルタップ成功時に表示させるボタン(BtnDTclose)

BtnDTclose.OnSelect
Select(BtnReset);
UpdateContext({FlgPrint:false})
BtnDTclose.Visible
FlgPrint

考え方

  1. 画面読み込み時に、初期動作でタイマーをリセットする
  2. BtnTapでタイマーを開始させる。と同時に、タイマー開始時の動作によりタップフラグをたてる(1回タップした、ということ)
  3. BtnTapが再度タップされると、タップフラグを確認し、すでにフラグが立っていたらタイマーをリセットし、ダブルタップ成功のボタンを表示させる
  4. もしタイマーが満了した場合は、タイマーがリセットされ、各フラグを折る(→2のイベントが発生したら、そこから処理再開)

でも、2のBtnTapのOnClickでタイマーを動作させたあとに、すぐタップフラグのチェックをするから、初回のタップでFlgDblTapがtrueになっちゃうと思うのですが、そうではないみたいなんですよね。一つのアクションに複数の関数を実行させる際の ; の動作って、シーケンシャルじゃなくてパラで走っちゃうんでしょうかね??

検証ではまっさらなアプリで試してみたので、たぶん変な変数が残存してて、みたいなことはないと思うのですが。。。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?