|
VFP 6.0的十个实用技巧(3) ---- 3.通过调整"SpecialEffect"的值为"1-凹下",可以设计凹下效果的边框类(three_p anel_ao)。 调整其余参数可以得到不同效果的边框。
---- 八.在程序中播放动画
---- 我们知道,VFP只支持静止的图片,无法直接播放GIF动画。但网上许多有趣而华丽的GIF动画的确令人心动,如何将这些动画插入到你的VFP程序中,让你的程序更吸引人呢?
---- 其实很简单,将GIF动画分解成各单独的静止的GIF或BMP图片,然后在VFP使用计时器让这些静止的图片轮流出现,就产生动画效果了。
---- 将GIF动画分解为静止图片的软件有很多,在网上很容易找到,如Animagic GIF 等。分解出来的图片我们分别以a0.bmp、a1.bmp……这样的形式保存。在表单中添加计时器TIMER1,TIMER1的Interval属性设为100,Enabled属性设为.T.,再添加Image1控件,其Backstyle属性设为0(透明),Stretch也设为0(裁剪)。
---- 在FORM的LOAD过程中写代码:
Public I , N I=0 N=5(静止图片的总共数目) 在TIMER1的TIMER过程中写代码: Local j i = mod (i+1,n) j = alltrim( str(i) ) thisform.image1.picture="a"-j-".bmp" 运行表单,我们就可以看到熟悉的GIF动画了。
---- 九.粘贴VFP顶层表单 ---- 当你将表单设置为顶层表单并独立运行于Windows下,就会发现表单中复制粘贴功能失效,给实际工作造成极大的不便,从而使编制的软件达不到专业水准。通过认真分析与实践,笔者认为,造成这一问题的原因是微软设计VFP时,只考虑了位于系统选单下的表单的复制和粘贴情况,即位于系统选单下的表单可使用复制及粘贴热键,而处于Windows下的表单完全脱离了系统选单的控制,因此复制及粘贴热键失效。
---- 解决的办法是可在表单的控件(本文举例为文本框)中,为KeyPress Event编写如下事件处理程序,该事件处理程序首先将选择内容复制到Windows剪贴板上,然后再将剪贴板上的内容添加到控件中。
KeyPress Event LPARAMETERS nKeyCode, nShiftAltCtrl if nkeycode=3 && CTRL+C 复制 -cliptext=this.seltext endif if nkeycode=22 && CTRL+V 粘贴 do case case this.selstart=0 this.value=-cliptext+this.value case this.selstart〉=1 and this.selstart〈=len(this.value) this.value=subs(this.value,1,this.selstart)+ -cliptext+subs(this.value,this.selstart+1) endcase endif thisform.grid1.column1.setfocus() sele recetem if not eof() skip endif thisform.refresh
---- 十.为VFP添加循环微调控件类 ---- 在VFP编程中,微调控件是最常用的控件之一。按照微调控件提供的基本功能,通过单击向上或向下箭头,而达到微调控件的最大或最小值时,如继续单击向上或向下箭头,将保持最大或最小值不变。笔者通过对Spinner控件属性和事件的分析,用编程的方法实现了循环微调控件功能。
---- 循环微调控件(CycleSpinner)所实现的功能是:当单击向上箭头而达到最大值时,再单击向上箭头,能自动跳到最小值;当单击向下箭头而达到最小值时,能自动跳到最大值;其余功能均继承Spinner基类的功能。具体实现方法如下:利用表单控件,在表单中设计一个微调按钮,并设置如下属性:
SpinnerHighValue=Max &&Max应小于Spinner基类所
|