如何使用timer1延时执行下一命令?
我调用外部exe文件后,程序的text控件就失去了焦点,而且外部exe要一段时间才能执行完毕。
如何使用timer1延时执行下面的指令:
thisform.text1.setfocus()
或者还有其他什么延时的方法?谢谢!!
[解决办法]
延时不是办法,不同的机器执行的时间是不一样的,很难精确控制
调用外部文件时让系统一直等待,直到运行结束才返回控制权就可以了
例如:
wsh = CreateObject('WScript.Shell')
wsh.Run('c:\aaa.exe', 0, 1)
wsh = null
[解决办法]
这样就有界面了:wsh.Run('c:\aaa.exe', 1, 1)
[解决办法]
原来是启动手写板,总算知道你要达到的效果了,延时功能这样也许可以:
1. 表单上添加一 Timer 控件,Enabled 设为 .F.,Interval 设为要延时的毫秒数
2. Timer 控件的 Timer 事件中写
Thisform.Text1.SetFocus()
This.Enabled = .F.
3. 在调用手写板的代码前加一句 Thisform.Timer1.Enabled = .T.
我没有试验环境,可能这样仍无法将焦点设置到文本框中,因为手写板成为活动窗口后,vfp 程序所在的窗口已经 Deactive,这时 SetFocus 可能就起不到作用了,如果出现这种情况,需要使用像 SetForegroundWindow 或 BringWindowToTop 这些 api 函数先激活 vfp 程序所在的窗口,然后才能 SetFocus。