gpt4 book ai didi

delphi - 即使窗口隐藏在托盘中,也可以在表单中使用操纵杆(游戏 handle )按钮。德尔福可以吗?

转载 作者:行者123 更新时间:2023-12-01 17:59:47 24 4
gpt4 key购买 nike

使用下面的代码,或者修改它,可以实现我的目标吗?或者不使用此代码,但它必须是当表单隐藏在托盘中时使用的操纵杆按钮。谢谢

type
TForm125 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
HotKey1 : Integer;
procedure WMHotKey(var Msg: TWMHotKey); message WM_HOTKEY;
public

end;

var
Form125: TForm125;

implementation

{$R *.dfm}


procedure TForm125.FormCreate(Sender: TObject);
begin
HotKey1 := GlobalAddAtom('MyAppHotkey1');//create a unique value for identify the hotkey
if not RegisterHotKey(Handle, HotKey1, MOD_CONTROL, VK_F1) then //register the hotkey CTRL + F1
ShowMessage('Sorry can not register the hotkey');
end;

procedure TForm125.FormDestroy(Sender: TObject);
begin
UnRegisterHotKey(Handle, HotKey1);//unregister the hotkey
GlobalDeleteAtom(HotKey1);//remove the atom
end;

procedure TForm125.WMHotKey(var Msg: TWMHotKey);
begin
if Msg.HotKey = HotKey1 then
ShowMessage('Hello'); // do your stuff
end;

最佳答案

抱歉,这是 Chris' answer 的后续内容,但看来 OP 需要更多帮助。

我也相信使用操纵杆组件是正确的选择。

例如,NLDJoystick 。随附安装说明以及迷你手册。

您需要执行以下步骤:

  • 将组件放置在表单上,​​
  • Active 设置为 True(未连接操纵杆时此操作不会成功),
  • 实现 OnButtonDown 事件,如下所示:

    procedure TForm1.NLDJoystick1ButtonDown(Sender: TNLDJoystick;
    const Buttons: TJoyButtons);
    begin
    Beep;
    end;

    TJoyButtons 类型是一组JoyBtn1..JoyBtn32,因此如果您希望可以对特定按钮或多个按下的按钮的组合使用react:

    procedure TForm1.NLDJoystick1ButtonDown(Sender: TNLDJoystick;
    const Buttons: TJoyButtons);
    begin
    if JoyBtn1 in Buttons then Beep;
    //or:
    if Buttons = [JoyBtn1, JoyBtn2] then Beep;
    end;

    请注意,如果Advanced为False(默认设置),则仅支持4个按钮。

关于delphi - 即使窗口隐藏在托盘中,也可以在表单中使用操纵杆(游戏 handle )按钮。德尔福可以吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7889505/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com