Foxpro OLE控件

时间:2007-02-12 00:00:00  来源:  作者:

OLE控件又是个什么洋玩艺,先来解释一下OLE,它是英文“Object Link and Enbed”的缩写,意思是对象的链接和嵌入。

这里所说的对象,与我们以前课程中所讲的对象又有所不同,不是指表单、文本框之类的东西,而是指VFP以外的东西,比如一幅图片、一段声音、一个EXCEL图表、一个WORD文件等等,我知道您这时一定很兴奋:难道在VFP的程序中也能放入这些东西吗?我的软件不就有了多媒体的功能,那岂不是帅呆了。

是的,的确是可以,下面我们就告诉您怎样做。

一、通用字段

VFP的数据表有一个通用型字段,可以放各种各样其它格式的文件,比如图片、声音等,在这里就是以OLE的方式放入的。

将其它文件放入通用字段的命令是:

APPEND GENERAL 通用字段名
[FROM 文件名]
[LINK]

比如我们可以给人事档案数据表(rsda.dbf)加一个字段“照片”,将一个人的照片用扫描仪扫好,以文件名“庄稼.bmp”存放在当前目录中,打开rsda数据表,将记录指针走到“庄稼”这条记录上,然后执行如下命令就可以将庄稼的照片放在相应的记录中了:

append general 照片 from 庄稼.bmp

具体到程序中可以在增添和修改人员的表单中增加一个文本框,在其中输入照片文件名,在该文本框的lostfocus事件中加入如下代码:

zpwjm=alltrim(this.value) &&将文本框的内容放入一个变量
if file(zpwjm) &&如果该文件存在
append general 照片 from &zpwjm &&将文件放入照片字段
else &&否则
messagebox(\\"文件名不存在!\\",64,\\"注意\\") &&给出提示
endif

如用删除通用字段中的内容,可用如下语句:

append general 通用字段名

多学一招

另外还可以交互式地将文件放入通用字段: 在浏览状态,将光标放在通用字段上,按“ctrl+pagedown”键,或者双击该字段,出现一表单,如 图1 ; 调用菜单上的“编辑/插入对象”,如 图2 ; 在出现的对话框中选择“从文件创建”; 输入文件名并确定,即可在显示通用字段的表单中看到插入的文件; 关闭该表单。

如要修改通用字段中的内容,可在第2步双击所看到的对象。

如要删除通用字段中的内容,可在第2步调用“编辑/清除”。

在第3步,您也可以选择“新建”,然后选择对象类型,比如WORD,然后您就可以打入一篇文章,之后存放在这个通用字段中。

通用字段中如果有了内容,在浏览时可看到字段中显示“Gen”,字母以大写开头,否则是以小写开头。

二、链接和嵌入

链接和嵌入是两个概念,也就是说我们将VFP之外的对象放入VFP时,既可采用链接的方式,也可采用嵌入的方式,它们有什么不同呢?

嵌入 :是指将对象真正放入了VFP,或者说是复制了一份放进来。好处是如果它的数据源丢失了,它仍然还在;缺点是数据源发生了变化,它不会随之而变化,比如照片换了,数据表中的照片不会自动更换,除非调用命令重新加入才行。另一个缺点是会使表变得很庞大。

链接 :没有将对象真正放入VFP,而只是放了个地址进来,每次要看时,就到这个地址去取。显然,其优缺点与嵌入正好相反。

在第一点中我们采用的都是嵌入,如要链接,append general跟“link”子句;交互式时,如果是从文件创建则在对话框中选择“链接”,如果是新建,因为直接是在通用字段中建立这个文件,不存在什么数据源,所以肯定是嵌入。

三、OLE绑定型控件

所谓“绑定”,就是说该控件是与通用字段绑在一起的(好象看不出通用字段的意思嘛),也就是说它的数据源是一个通用字段的内容,我们可以将一个OLE绑定型控件放在表单以显示通用字段的内容,方法为: 进入表单设计器; 调OLE绑定型控件工具 wpe4.jpg (974 bytes); 在表单上适当地方画出控件,就象设置一个image控件一样,如 图3 ; 设置其controlsource属性为一通用字段的字段名,比如“rsda.照片”,如 图4 。

当运行表单后,我们就能看到所要的效果了,并且当表中记录指针移动时,表单中的照片也会随之变化。

四、OLE容器型控件

类似于在通用字段中放入对象,当调用工具栏上的OLE容器型控件工具,在表单上拉出该控件后,会出现一个与在通用字段中插入对象类似的对话框,插入的方法也与在通用字段中一样,也就是直接将对象插入到表单中,而不象绑定型控件到通用字段中去取。

与在通用字段中插入对象时的对话框有一点不同,就是多了一个“插入控件”,如 图5 ,这是用于插入ActiveX控件的,关于ActiveX控件要到高级教程再讲了,这一课就此Bye-Bye。

五、重要方法程序

OLE控件有一个重要的方法程序,就是doverb,该方法程序可以调用插入对象的宿主程序(如一般在电脑中BMP格式文件的宿主程序是画笔),对对象进行编辑、运行等。




文章评论

共有 0人发表了评论 查看完整内容

推荐教程

最新教程