記事カテゴリ

ユーザー機能


 2024年4月19日(金) 05:16 JST

[Delphi] Enterキーで次のフィールドに移動する

  • 投稿者:
  • 表示回数
    25,601

コンポーネントのKeyPressイベントを使います。
KeyPressイベントでEnterキーが押されたときに、次のコントロールに移動するWindowsのメッセージを送ってフォーカスを移動させます。
任意のコントロールにフォーカスを移動させる場合には、コントロール名.SetFocusを使用します。

procedure Edit1KeyPress(var Key: Char);
begin
  if (Ord(Key) = VK_RETURN) and (Shift = []) then
  begin
    // Enterキーが押されたら、次フィールドへ移動する。
    // Delphi関数を使う方法
    SelectNext(ActiveControl, GetKeyState(VK_SHIFT) >= 0, true);
    // ...Windows Messageを使用する方法
    //SendMessage(Handle, WM_NEXTDLGCTL, Ord(GetKeyState(VK_SHIFT) < 0), 0);
    // 通常のEnterキーの処理をしないようにクリアしてしまおう。
    Key := #0;
  end;
end;

トラックバック

このエントリのトラックバックURL:
https://www.blackcat.xyz/trackback.php/ProgramingFAQ_del0001

以下のコメントは、その投稿者が所有するものでサイト管理者はコメントに関する責任を負いません。