vf 中控件属性click事件代码Word下载.docx
《vf 中控件属性click事件代码Word下载.docx》由会员分享,可在线阅读,更多相关《vf 中控件属性click事件代码Word下载.docx(40页珍藏版)》请在冰豆网上搜索。
text4。
此表单所用的数据表和密码设置为同一张表。
在表单的“确定”按钮click写入代码ifthisform.text1.value=.or.thisform.text2.value=.or.thisform.text3.value=.or.thisform.text4.value=messagebox(存在空输入框,无法修改!
0+64,警告)elseusee:
xyz表1.dbf*打开数据表ifnoteof()locaforname=allt(thisform.text1.value).and.mm=allt(thisform.text2.value)ifname=allt(thisform.text1.value).and.mm=allt(thisform.text2.value)ifmessagebox(要保存修改吗?
32+4+256,询问;
)=6replanamewiththisform.text3.value,mmwiththisform.text4.valueifmessagebox(修改已完成,是否退出?
32+4+256,询问)=6usethisform.releaseendifendifelsemessagebox(密码或用户名有误,请重新输入!
0+48,警告)endifendifendifusethisform.text1.value=thisform.text2.value=thisform.text3.value=thisform.text4.value=thisform.text1.setfocus以上代码,您可以略做修改,做为密码修改的代码。
顶层表单的实现大家不知道有没有过这样的一种经历,设为顶层表单的表单一运行,就会一闪而过,明明是该设的都设好了啊,呵呵,没事,这里,本人帮你解决问题。
在表单的属性ActivateEvent里加上ReadEven,然后再属性里的Release里加上一句CleaEven。
记住,一定要在Release里加上这一句,不然,无法关闭表单的你再试一下看看,顶层表单不会再一闪而过了。
一个程序多个顶层表单的问题如果你的程序里要用到两个或两个以上的表单,你会发现,打开出来后的表单会没有办法关闭第一个,这时,就要用到隐藏了,如果你第一个表单运行后,进入第二个时,用_Screen.visible=Off。
这时,在Windows的状态栏里,你会看到只有一个程序了,可是这时,如果你用Ctrl+Alt+Del来结束当前程序的时候,会发现,其实关闭的只是当前的表单,而被隐藏的表单没有被关闭,怎么来解决这个问题呢?
没事,在第二个顶层表单,也就是你要关闭的表单的属性里面的DestroyEven加上一句:
_Screen.Show然后再追加一条Quit。
好了,这里你再试一下看看,你会发现你用Ctrl+Alt+Del来结束程序的时候,在Windows任务进程里的程序被关闭了。
到此,你的表单问题解决了给顶层表单添加工具栏1.在类库MyVcx中建立一个工具栏类MyToolBar,将工具栏的ShowWindow属性设置为1最上层表单;
2.给顶层表单添加一个自定义属性TopToolBar;
3.编辑顶层表单的Activateevent,输入以下代码:
This.TopToolBar=NewObject(MyToolBar,MyVcx)This.TopToolBar.show()This.TopToolBar.dock(0)现在,你就可以享受顶层表单的工具栏了!
为表单建立功能键对于数据输入人员而言,使用鼠标反而降低操作的效率。
比方说,假设操作人员要新增数据时,除了可以使用鼠标按下新增按钮,也可以直接按下功能键F2,在这种情况下,您觉得操作人员会使用什么方法呢?
根据经验,由于数据输入人员对键盘上各类按键的配置位置相当熟悉,因此几乎所有的输入人员都会采用立即可按下的功能键,而不会去使用鼠标,因为他或她不需要将手离开键盘使用鼠标,操作的效率自然提高。
所以,一个设计良好的系统,应该是既能使用鼠标操作,也能使用键盘操作。
由此可见,为表单建立功能键的重要性。
要为表单建立功能键,关键在于KeyPress事件的使用。
因为每当您在表单中按下并放开某一键时,表单的KeyPress事件便会被引发。
显然您只需要在表单的KeyPress事件程序中,去拦截使用者在表单中所按下的每一个键,并且判断它是否是特定功能键,便能决定是否要执行特定的操作。
然而,这却引发了另一个值得讨论的问题,那就是并非只有表单才拥有KeyPress事件,许多控件也拥有KeyPress事件。
比方说,您目前在表单中的某一TEXT输入框中,此时若按下并放开某一按键,所引发的将是此TEXT输入框的KeyPress事件,而表单的KeyPress事件将不会引发。
因此也许您会问,我们是否必须为表单中所有控件的KeyPress事件程序都撰写判断使用者是否按下功能键的程序码?
当然不是,因为这样不仅繁琐,而且还会降低效率。
要让表单的KeyPress事件拦截作用控件的KeyPress事件,也就是先引发所属的表单的KeyPress事件再引发作用控件的KeyPress事件,只要将表单的KeyPressView属性设为.T.即可。
这样,您只需要在表单的KeyPress事件程序中撰写判断使用者是否按下建立功能键的程序码,而不需要在表单所内含的各个控件的KeyPress事件中写此代码。
几项说明:
1、由于VFP本身已经为各个功能键定义了按键集合,因此要使您所设定的各个功能键生效,首先必须清除VFP的按键集合定义。
要清除VFP的按键集合定义,必须在表单的INIT事件程序中加入下面这道命令:
CLEARMACROS2、请务必将表单的属性设定为逻辑真值。
3、VFP会自动传递两个参数给KeyPress事件程序,因此您必须在KeyPress事件程序的开头处使用LPARAMETERS或PARAMETERS命令来接收这些参数,否则将发生错误。
第一个参数nKeyCode是一个数值型参数,其值为使用者是否按下功能键。
第二个参数nShiftAltCtrl是一个数值型参数,从这个参数您可以判断出使用者按按键是否包含组合键Shift/Alt/Ctrl键。
KeyPress事件程序的代码:
LPARAMETERSnKeyCode,nShiftAltCtrlDOCASECASEnKeyCode=-1&
F2WITHTHISFORM.cmdfind.SetFocus.ClickENDWITHCASEnKeyCode=-2&
F3WITHTHISFORM.cmdprint.SetFocus.ClickENDWITHCASEnKeyCode=-3&
F4WITHTHISFORM.cmdadd.SetFocus.ClickENDWITHENDCASE从上面的程序中您可以发现,当按下特定功能键后,我们调用相对应的按钮的Click事件程序,也就是说,要执行的操作仍然是写在各个按钮本身的Click事件中。
而调用SetFocus事件的是为了造成该按钮在外观和视觉上被选定的感觉。
-4、我们希望在程序结束执行后,恢复默认的按钮集合定义。
要达到此目的,必须在表单的退出事件中撰写下列命令:
RESTOREMACROSVFP中实现背景音乐的几种方法一、利用setbelltoVFP5.0的setbellto命令的使用格式不同于FoxPro2.X的格式。
在VFP5.0中,它的格式为SetBellTocWAVFileName,nDuration。
其中cWAVFileName为一个.WAV文件;
nDuration为持续时间(注意该项不可省略,否则会产生语法错误)。
这样当在个人程序的初始模块中用setbellto定向到一.WAV文件后,便可在后面的模块中用?
chr(7)来播放该.WAV文件。
示例1:
setbellon&
使bell有效setbellto.WAV文件,0&
定向到一个.wav文件。
?
chr(7)&
播放该.WAV文件二、利用OLE容器控件创建一表单,单击表单控件工具栏中的“OLE容器控件”按钮,然后在表单上适当位置点击或拖动。
在出现的“InsertObject”窗口中选“CreatNew”或“CreatFromFile”,用“Browse”按钮选取自己的.WAV文件,确定即可。
在当前表单中会出现一“喇叭”图标,设置该图标的属性“AutoActivate”为1,可使每当表单运行时自动播放该.WAV文件,实现背景音乐;
设置Height、Width均为0时,可隐藏“喇叭”图标。
三、利用VFP库Foxtools.fll用=Regfn()和=Callfn()可访问Foxtools.fll中的音频模块,进行播放声音文件。
示例2:
创建一表单,在其Activate事件中输入下列代码:
publicss&
定义一全局变量sssetlibrarytofoxtools.fll&
打开库Foxtools.fllss=Regfn(SndPlaySound,CI,I,mmsystem)&
取得音频信息=Callfn(ss,.wav文件,n)&
n=0(1,2,3也可)时只播放一遍,n=9时循环播放在其Destroy事件中输入下列代码:
=Callfn(ss,10)&
停止播放setlibraryto&
从内存中释放库foxtools.fll四、利用Windows的动态链接库在VFP5.0的安装目录samplesclasses下,有一类库samplesclasses。
其中提供有两种控件:
视频和音频,音频可以控制播放.WAV和.MID文件,利用它可轻松地实现背景音乐。
下面给出它的实例。
示例3:
创建一表单,在表单控件工具栏中选择类按钮,添加VFP5.0中的samplesclassessamples.vbx类库。
此时表单控件工具栏中会出现SoundPlayer和VideoFrame两个多媒体控件。
选择SoundPlayer,在表单上单击后,设置属性如下:
AutoOpen=.t.AutoPlay=.t.AutoRepeat=.t.Class=SoundPlayerSoundfile=指定.WAV或.MID文件注意没有引号Visible=.f.&
不可见以上几种方式各有优缺点,应用时要注重满足自己的编程需要。
声音的播放在程序的编制过程中,适当地使用声音,可达到意想不到的效果,下面是在VFP中加入声音的几种方法:
1使用setbellto命令用setbellto命令可以直接播放声音,此方法主要适用于给按钮加上声音效果,比如有一个开始按钮,要在按下它时能发声,可在其CLICKEVENT中加入如下代码:
wav_name=sound.wavsetbelltowav_name,0?
chr(7)其中sound.wav为要播放的声音文件。
2调用mplayer2.exe来播放Mplayer2.exe是Windows自带的媒体播放器,在VFP中,可使用如下命令来播放声音文件:
Run/n7c:
progra1micros2mplayer2.exesound.wav-若想在启动时播放声音,可将该语句放入表单的init事件中。
这种方法适宜于用来播放背景音乐,其缺点是播放时,Windows工具栏上有一个最小化后的媒体播放器。
3使用OLE控件在表单中添加一个OLE对象可按如下顺序:
新建一个表单,选中表单控件工具栏的OLEcontrol;
在表单上按下鼠标左键,建立OLE对象,在出现的对话框中选择声音对象,选择以createformfile方式插入;
选择要插入的声音文件,确定退出;
用Doverb方法来执行,其中Doverb(0)用来播放,Doverb
(1)用来编辑。
例如要在表单启动时同时启动声音,可在表单的init事件中加入如下语句:
thisform.olecontrol1.doverb(0)4使用MicrosoftMediaPlayer控件在一个表单中加入声音的顺序如下:
在VFP中,选择工具选单的选项;
在出现的界面中选择控件,选中ActiveX控件,在选定对话框中选择Microsoftmediaplayer,确定退出该界面;
在工具栏中选择ActiveX控件,选中Microsoftmediaplayer控件,在表单上单击鼠标左键,这样就创建了Microsoftmediaplayer对象;
以下语句可实现声音的播放:
thisform.olecontrol1.open(sound.wav)playcount可用来控制播放的次数;
如想实现重复播放,可在EndOfStreamEvent中加入语句:
this.play。
这种方法也可以用来播放.avi、.mpeg等文件,只需把上面的sound.wav文件改为相应类型的文件即可。
在屏幕中央显示提示框一般在处理数据时,都在屏幕中间显示一个一个提示正在处理数据的提示框,Vfp能否作到了。
当然能,而且很简单,只要您跟着下面的做法,一定能成在处理之前先做lcMsg=Processing,PleaseWait.WAITWINDOWlcMsgNOCLEARNOWAITATSROW()/2,(SCOLS()-LEN(lcMsg)/2处理后用Waitclear清除等待框即可达到效果。
VisualFoxPro多媒体表单设计世界进入信息时代以来,人们不得不对越来越多的信息进行处理与管理。
其中既有大量的文字信息,也包括各式各样的静态图形、动态图象和声音等多媒体信息。
传统的只能处理文本信息的数据库管理系统已不能适应社会发展。
当今的时代越来越需要能够处理多媒体信息的数据库管理系统。
而MicroSoft推出的VisualFoxPro系统,能充分利用Windows的设备无关性等优势,在多媒体信息管理和处理能力上有了很大提高。
它的出现为开发多媒体程序提供了很大方便。
但从多媒体数据管理性能看,VisualFoxPro命令集中只有静态图形的直接显示功能,动态图象和声音的播放或编辑,则需要外部功能的支持。
因此,为了完成多媒体数据管理,VisualFoxPro提供了调用DLL(动态链接库)的功能,允许在应用程序中充分发挥Windows中DLL资源的优势。
它还可利用Windows提供的MCI(MediaControlInterface)多媒体控制接口功能,使用户能够控制各种媒体设备。
除此之外,VisualFoxPro还支持OLE(对象的链接与嵌入)功能,用户可利用各种OLE控件进行多媒体程序设计。
本文即以OLE控件为例,简要介绍VisualFoxPro中多媒体声音表单的设计方法。
一、声音控件创建VisualFoxPro中有两种OLE控件,一种是OLEControl(OLE容器控件),一种是OLEBoundControl(OLE绑定型容器控件)。
OLEBoundControl主要用于对VisualFoxPro表中General(通用型)字段的控制。
而利用OLEControl控件创建的嵌入式OLE对象,可与表单构成一体。
用OLEControl控件创建有声表单的过程如下:
1.选择OLE容器控件首先在“表单设计器”中打开需要填加声音对象的表单,进而用鼠标左键单击“表单控件工具栏”的按钮,选择添加该控件,如图1所示。
2.选择添加的对象类型在表单上,用鼠标左键选择适当的区域,建立OLE控件。
进而在随后出现的“InsertObject”对话框(图2)中,选择要添加的对象类型(ObjectType)为“声音”(添加其它类型的多媒体对象则应选择相应类别)。
3.从现存文件添加对象添加对象可以以“CreateNew”方式或“CreateFromFile”方式进行。
如果选择以“CreateFromFile”方式添加对象,将出现图3所示对话框。
单击“Browse”按钮后,则出现图4所示“插入文件”画面。
选择相应声音文件后,按“打开”按钮,即可完成从现存文件添加声音对象过程。
4.创建新对象如果选择以“CreateNew”方式添加对象,应单击“InsertObject”对话框的“Ok”按钮。
它将启动声音编辑程序,对新文件进行录音或编辑。
如果在“编辑”菜单上执行“插入文件”项(图5),也将出现图4所示“插入文件”画面。
选择相应声音文件后,按“打开”按钮,即可插入现存文件进行编辑。
完成文件编辑后,选择执行“文件”菜单上“退出”功能,即完成创建新声音对象的过程。
二、声音控件执行方法1.执行方法说明建立的OLE对象的一般可用DoVerb方法来执行。
该方法应用于OLE绑定型容器控件和OLE容器控件,它可在指定的对象上执行一个相应动作。
其执行语法为:
ObjectName.DoVerb(nVerb)其中的ObjectName为OLE容器控件对象名称。
参数nVerb指定在OLE容器控件中对象要执行的动作值。
如果没有指定,就执行默认的动作。
各值对应的对象执行动作如下:
0对象的默认动作。
一般为“播放”1激活要编辑的对象。
如果创建对象的应用程序支持现场激活,就在OLE容器控件中激活对象。
2在一个独立的应用程序窗口中打开对象。
如果所创建对象的应用程序支持现场激活,就在对象自身的窗口中激活对象。
3对于嵌入的对象,隐藏创建对象的应用程序。
4如果对象支持现场激活,就以现场激活方式激活对象并显示任何用户界面工具。
如果对象不支持现场激活,对象就不激活并产生错误。
5如果用户将焦点移到OLE容器控件中,就创建一个窗口,并准备要编辑的对象。
如果对象不支持以鼠标单击的方式激活,就产生错误。
6当激活要编辑的对象时,用来放弃所有记录的更改,对象的应用程序可以撤消这些更改。
2.命令按钮创建与设置一般而言,DoVerb(0)用来播放OLE对象,DoVerb
(1)用来编辑。
为了能让用户在表单运行时操作OLE对象,