Foxpro键盘命令

时间:2010-10-14 15:31:28

标签: foxpro

当我使用键盘命令时,它在Foxpro调试环境中工作,但是当我构建.exe时,键盘命令不起作用。当我把Foxpro表格聚焦在一起时,即使按 F1 也没有任何反应,直到我把注意力从正在运行的应用程序上移开?

实施例

键盘 F1

在调试非.exe模式下工作得很好,但在.exe模式下什么都不做?

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

ON KEY LABEL F1 CallYourFunction()

但是“CallYourFunction”不能引用任何“This”。或“Thisform。”。但是,如果你想要F1链接到某个对象的全局变量,你也可以这样做......比如

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

然后用你的KEYBOARD {F1}将正确调用函数或object.function。

答案 2 :(得分:0)

你在哪里有KEYBOARD命令?是在窗体上的按钮Click(),还是其他方法?

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

但我不确定你要先完成的是什么。

Rick Schummer - VFP MVP

答案 3 :(得分:0)

完美但不安全

在Key Label 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()