1、给程序添加背景音乐
在利用Visual Foxpro 编制应用程序时,如果能给应用程序添加背景音乐,无疑是件锦上添花的事,背景音乐能给应用程序增色不少。不般的方法是利用OLE(对象嵌入与链接)进行嵌套。具体方法是选择“表单控件”上的“OLE容器控件”,将其拖到表单上,再在“插入对象(Insert Object)”窗口中选择“媒体剪辑”,调用“媒体播放机”,利用它来播 放出音乐,同时把播放任务条隐藏起来。利用这种方法要占用大量系统资源,且要利用到外部程序“媒体播放机”,不是一个好方法。其实我们可以利用VFP的动态链接库foxtools.fll来轻松
实现背景音乐,而且极少占用系统资源。foxtools.fll位于VFP的安装目录中,如下例中假设安装目录为C:VFP。假设Visual FoxPro 系统安装于C:VFP目录中。首先准备一WAV格式的背景音乐文件(这里以back.wav这例),放于指定目录如C:TEST中;可在表单(Form)的Activate事件中加入如下代码:
public sound set defa to C:TEST
set Library to c:vfpoxtools.fll &&指定FoxPro 动态链接库
sound=regfn("SndplaySound","CI","I","Mmsystem")
=callfn(sound,"back.wav",1)
为了在表单释放时关闭音乐, 同时在LostFocus事件中加入代码:
=Callfn(sound," ",10) set library to
2、通过程序实现自动选择打印机
如果单位里的局域网上安装有多台网络打印机,在使用VFP 6.0编制的程序进行打印操作时,可以选择其中的任意一台空闲的网络打印机进行打印,只须在执行命令:Report From … To Printer 之前,先执行:Set Printer To Name Getprinter(),就可以调用操作系统的“打印设定”对话框,用户利用该窗口即可达到灵活选择空闲打印机进行打印输出的功能。
3、实现文字动画效果
我们可以使用VFP来实现文字动画效果,这里笔者就以让文字逐个从屏幕底部飞入为例,来说明VFP在实现文字动画方面的功能。首先建立一个新的表单(Form1),设置表单的Backcolor属性为RGB(192,192,192),然后在表单上建立四个标签(Label1、Label2、Label3和Label4)和一个定时器(Timer1)。
设置四个标签的Caption(标题)属性分别为‘文’、‘字’、‘动’、‘画’,Backstyle属性为0(透明),Fontsize属性为26,Autosize属性为.T.(自动调整大小);
设置定时器的Interval(定时间隔)为100,Enabled属性为.T.(不可用)。我们假设Label1、Label2、Label3和Label4的Autosize属性为.T.,Alignment属性为0(左边)。
下面就是实现该功能的部分源代码:
Public Top,Num
Num = 1
Top = Thisform.Label1.Top
For I = 1 To 4
LabelT = 'Label' + STR(i,1) + '.Top'
Thisform.&LabelT = Thisform.Height
Endfor
Thisform.Timer1.Enabled = .T.
LabelT = 'Label' + STR(Num,1) + '.Top'
If Thisform.&LabelT <= Top + 20
Thisform.&LabelT = Top
Num = Num + 1
If Num = 5
Thisform.Timer1.Enabled = .F.
Endif
Return
Endif
Thisform.&LabelT = Thisform.&LabelT – 20
4、实现页面的自动换页功能
当有大量数据需要录入时,可以使用页框(PageFrame)控件,为了实现页面的自动换页,应在页面上的最后一个控件(如文本框)的LostFocus事件中加上以下代码:
thisform.WIZFRAME1.ACTIVEPAGE=2
thisform.WIZFRAME1.page2.ZCZJ1.text1.setfocus
其中的“2”要根据页数改变,如在第二页的最后一个对象中的LostFocus中加入如下代码:
thisform.WIZFRAME1.ACTIVEPAGE=3
thisform.WIZFRAME1.page3.CKGJ1.text1.setfocus
这样的好处是录入员录到这页的最后一项时,系统会自动分页。
5、粘贴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
(责任编辑:DawnSummit)
|