用了VFP这么久,突然发现一个有趣的问题。
将以下代码粘贴到一个PRG文件中并运行
运行后界面如下:

左边的 Image 是个 Gif 动画,你们可以随意找一个 Gif 动画图片。
表单上用一个 Timer 控件显示时间,另外有一个 Combobox 和 ListBox。
有趣的问题来了,当你按住鼠标左键拖动 Combobox 或 ListBox 或 VFP 的 Command 窗口的滚动条时(下图蓝色框),
你会发现时间不动了,Gif 动画也停止了(下图黄色框),你松开鼠标左键后时间和Gif恢复动态。

说明拖动 VFP 的滚动条(Grid控件的滚动条也是这样,估计VFP的带滚动条的控件都一样)会影响 Timer 控件,不对,是影响整个进程了,因为 Gif 动画也不动了。
此问题说小也小,说大也大。
说小是可以忽略此问题。
说大此问题确实影响实际应用了,最近在做一个读卡的程序时,用 Timer 控件每秒通过MsComm32控件读卡,此问题会把程序卡死几秒钟,最后通过2个EXE才解决了此问题。
此问题
是BUG?
还是VFP单线程的问题,特点?
还是。。。
希望大家讨论一下。
Public oform1
oform1=Newobject("form1")
oform1.Show
Return
Define Class form1 As Form
Top = 29
Left = 124
Height = 183
Width = 377
DoCreate = .T.
Caption = "Form1"
Name = "Form1"
Add Object timer1 As Timer With ;
Top = 12, ;
Left = 12, ;
Height = 23, ;
Width = 23, ;
Interval = 500, ;
Name = "Timer1"
Add Object label1 As Label With ;
AutoSize = .F., ;
FontSize = 16, ;
Caption = "Label1", ;
Height = 36, ;
Left = 56, ;
Top = 12, ;
Width = 252, ;
ForeColor = Rgb(0,0,255), ;
Name = "Label1"
Add Object combo1 As ComboBox With ;
RowSourceType = 1, ;
RowSource = "1,2,3,4,5,6,7,8,9,0,a,b,c,d,e,f,g,h", ;
Height = 24, ;
Left = 252, ;
Top = 60, ;
Width = 100, ;
Name = "Combo1"
Add Object list1 As ListBox With ;
RowSourceType = 1, ;
RowSource = "1,2,3,4,5,6,7,8,9,0,a,b,c,d,e,f,g,h", ;
Height = 72, ;
Left = 144, ;
Top = 60, ;
Width = 100, ;
Name = "List1"
Procedure timer1.Timer
Thisform.Label1.Caption=Ttoc(Datetime())
Endproc
Enddefine运行后界面如下:

左边的 Image 是个 Gif 动画,你们可以随意找一个 Gif 动画图片。
表单上用一个 Timer 控件显示时间,另外有一个 Combobox 和 ListBox。
有趣的问题来了,当你按住鼠标左键拖动 Combobox 或 ListBox 或 VFP 的 Command 窗口的滚动条时(下图蓝色框),
你会发现时间不动了,Gif 动画也停止了(下图黄色框),你松开鼠标左键后时间和Gif恢复动态。

说明拖动 VFP 的滚动条(Grid控件的滚动条也是这样,估计VFP的带滚动条的控件都一样)会影响 Timer 控件,不对,是影响整个进程了,因为 Gif 动画也不动了。
此问题说小也小,说大也大。
说小是可以忽略此问题。
说大此问题确实影响实际应用了,最近在做一个读卡的程序时,用 Timer 控件每秒通过MsComm32控件读卡,此问题会把程序卡死几秒钟,最后通过2个EXE才解决了此问题。
此问题
是BUG?
还是VFP单线程的问题,特点?
还是。。。
希望大家讨论一下。
...全文
相关推荐
vfp初学者教程——《菜鸟学习VFP》
通过实践和互动,使学习过程更加生动有趣,从而提高学习效率和成果。
VFP6、VFP7、VFP8、VFP9、VFP9sp2运行库合集
VFP9运行库是运行基于VFP9构建的应用程序所必需的。5. **VFP9sp2**:VFP9的服务包2(Service Pack 2)是一个重要的更新,通常包含错误修复和性能提升。
VFP 反编译工具全集
标题 "VFP 反编译工具全集" 涉及到的是Visual FoxPro(VFP)编程环境下的一个特定领域——反编译技术。
解决vfp新手问题集所有问题解决方法
对于初学者来说,可能会遇到各种各样的问题,而"解决vfp新手问题集"显然是一个专门针对这些问题的资源集合。
VFP源码VFP源码VFP源码
这些文件是VFP数据库的重要组成部分:1. **.BAK文件**:这是VFP数据库的备份文件,通常用于防止数据丢失。当你对数据库进行修改或更新时,可以创建备份,以便在出现问题时恢复到先前的状态。.


