Foxpro 键盘命令

发布于 2024-09-27 19:34:07 字数 246 浏览 7 评论 0原文

当我使用键盘命令时,它可以在 Foxpro 调试环境中工作,但是当我构建 .exe 时,键盘命令不起作用。当我将 Foxpro 表单置于焦点中时,即使按 F1 也不会发生任何事情,直到我将焦点从正在运行的应用程序上移开?

示例

键盘 F1

在调试非 .exe 模式下效果很好,但在 .exe 模式下不起作用?

When I use the keyboard command it works in the Foxpro debugging enviroment, but when I build the .exe the Keyboard command does not work. When I have the Foxpro form in focus even pressing F1 nothing happens till I take focus off the running application?

Example

KEYBOARD F1

In debug non .exe mode works great, but in .exe mode does not do anything?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

烟燃烟灭 2024-10-04 19:34:07

我认为这是设计使然。帮助文件不是exe的一部分,它是开发环境的一部分。因此,当在 FoxPro 开发环境之外运行应用程序时,帮助文件不可用。

I think this is by design. The help file is not part of the exe, it is part of the development environment. So, when running the application outside of the FoxPro development environment, the help file is not available.

帝王念 2024-10-04 19:34:07

虽然 @DaveB 在 F1 帮助子系统的设计上是正确的,但您仍然可以通过添加“ON KEY LABEL”来规避并使按键工作...类似于...

ON KEY LABEL F1 CallYourFunction()

但是“CallYourFunction ” 不能引用任何“这个”。或“此表格”。但是,如果您希望 F1 链接到某个对象的全局变量,您也可以这样做...例如

oMyGlobalVar = Thisform
ON KEY LABEL F1 oMyGlobalVar.SomeFunction()

,使用您的键盘 {F1} 将正确调用该函数或 object.function。

Although @DaveB is correct by design for the F1 help subsystem, you can still circumvent and make the keypress work by tacking in the "ON KEY LABEL"... something like...

ON KEY LABEL F1 CallYourFunction()

But the "CallYourFunction" can't be reference any "This." or "Thisform.". However, if you have a global variable to some object you want the F1 to link to, you can do it that way too... such as

oMyGlobalVar = Thisform
ON KEY LABEL F1 oMyGlobalVar.SomeFunction()

then with your KEYBOARD {F1} will properly call the function or object.function.

趁年轻赶紧闹 2024-10-04 19:34:07

键盘命令在哪里?是在表单上的按钮 Click() 中,还是在其他方法中?

KEYBOARD 命令将按键填充到键盘缓冲区中供 Windows 处理。 DRapp 提供 ON KEY LABEL,允许您在用户单击按键之前设置按键功能。

但我不确定你首先想要完成什么。

里克·舒默
- VFP MVP

Where do you have the KEYBOARD command? Is it in button Click() on a form, or some other method?

The KEYBOARD command stuffs the key into the keyboard buffer for Windows to process. DRapp offers up the ON KEY LABEL, which allows you to set up the functionality of the keystroke before a user clicks on the key.

But I am not sure exactly what you are trying to accomplish first.

Rick Schummer
- VFP MVP

箹锭⒈辈孓 2024-10-04 19:34:07

完美但不安全

按键标签 F5 _Screen.ActiveForm.cmdnew.Click

完美但安全

加载事件--主窗体
This.KeyPreview= .T。

KeyPress 事件——主窗体

LPARAMETERS nKeyCode, nShiftAltCtrl
If m.nKeyCode = -4 && F5
   Nodefault
   Thisform.cmdNew.Click()
Endif

其他技巧

Public oMyGVar

oMyGVar = Thisform
ON KEY LABEL F1 oMyGVar.SomeFunction()

Perfect but not safer

On Key Label F5 _Screen.ActiveForm.cmdnew.Click

Perfect but Safe

Load Event -- Main Form
This.KeyPreview= .T.

KeyPress Event -- main form

LPARAMETERS nKeyCode, nShiftAltCtrl
If m.nKeyCode = -4 && F5
   Nodefault
   Thisform.cmdNew.Click()
Endif

Other Trick

Public oMyGVar

oMyGVar = Thisform
ON KEY LABEL F1 oMyGVar.SomeFunction()
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文