当我使用键盘命令时,它在Foxpro调试环境中工作,但是当我构建.exe
时,键盘命令不起作用。当我把Foxpro表格聚焦在一起时,即使按 F1 也没有任何反应,直到我把注意力从正在运行的应用程序上移开?
实施例
键盘 F1
在调试非.exe
模式下工作得很好,但在.exe
模式下什么都不做?
答案 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()