LoginSignup
0
0

More than 5 years have passed since last update.

Delphi / C++Builder で Android の「戻る」ボタンの動作を無効にする

Posted at

Android のスマホでアプリの操作中、「戻る」ボタンの動作が作動してしまったことありませんか?
画面の下の方にある△のアレですよ!うっかり触れてアプリ終了とかになってしまうアレ!

ヘルプにもありますが、フォーム (TForm) のキーイベント (OnKeyDown または OnKeyUp) で戻るボタンの値 (vkHardwareBack = 137) を検知して、押されたキーを無効 (Key := 0 / Key = 0;)にします。

#個人的には OnKeyDown の方が腑に落ちる

サンプルコード

Delphi

// OnKeyDownイベントで検知する場合
procedure TForm1.FormKeyDown(Sender: TObject; var Key:Word; var KeyChar: Char;
 Shift: TShiftState);
begin
  if Key = vkHardwareBack then Key := 0;
end;

または

// OnKeyUpイベントで検知する場合
procedure TForm1.FormKeyUp(Sender: TObject; var Key:Word; var KeyChar: Char;
 Shift: TShiftState);
begin
  if Key = vkHardwareBack then Key := 0;
end;

C++Builder

// OnKeyDown イベントで検知する場合
void __fastcall TForm1::FormKeyDown(TObject *Sender, Word &Key, System::WideChar &KeyChar,
 TShiftState Shift)
{
  if (Key = vkHardwareBack) { Key = 0; }
}

または

// OnKeyUP イベントで検知する場合
void __fastcall TForm1::FormKeyUp(TObject *Sender, Word &Key, System::WideChar &KeyChar,
 TShiftState Shift)
{
  if (Key = vkHardwareBack) { Key = 0; }
}
0
0
2

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
0
0