Auto CAD中OLE对象具体指什么
OLE是Object Linking and Embedding的缩写,直译为对象连接与嵌入,学过VB的朋友可能知道VB中有一
种控件就叫OLE对象,通过这个控件就可以调用其他格式的数据。
其实,OLE技术在办公中的应用就是满足用
户在一个文档中加入不同格式数据的需要(如文本、图像、声音等),即解决建立复合文档问题。
OO中
OLE和上述概念完全一致,只不过是采用更为完善的组件技术,通过OLE这座桥梁可以极为方便实现OO中各个
功能模块的相互调用与协同工作来创建复合文档。
Auto CAD中OLE对象具体指:
ole对象实际上就是别人的程序原封不动的拿来使用。
可在 Visual Basic 应用程序中添加的最强大、最有用的功能之一就是在控件和控件之间、在控件和其它 Windows 应用程序之间拖动文本和图形。
有了 OLE,就可将这种功能引入到应用程序中。
使用 OLE 拖放时,并不是把一个控件拖动到另一个控件并调用代码(象本章前面讨论的拖放一样);而是将数据从一个控件或应用程序移动到另一个控件或应用程序。
例如,您可以选择并拖动
Excel 中的一个单元范围,然后将它们放到应用程序的 DataGrid 控件上。
Visual Basic 的几乎所有控件都在某种程度上支持 OLE 拖放。
此外,一些标准的和 ActiveX 控件(由 Visual Basic 专业版和企业版提供的)还提供对 OLE 拖放的自动支持,这意味着控件支持在 OLEDragMode 和 OLEDropMode 属性中的自动设置,并且无论是从控件拖出还是在控件内放入都不需要编写代码。
这一点与手动拖放相反,在手动拖放中,您必须为拖放编程:
有些支持自动 OLEDragMode 和 OLEDropMode 的控件包括 PictureBox、Label、以及 TextBox 控件。
为对这些控件启动自动 OLE 拖放,应将 OLEDragMode 和 OLEDropMode 都设置为“自动化”。
有些控件支持自动 OLE 拖动,但只支持手动放下,有些支持自动放下,但只支持手动拖动。
例如,ComboBox 控件支持手动和自动拖动,但不支持自动放下。
这是由于如果您将一个项目拖动到 ComboBox 中,Visual Basic 无法知道将新项目放下的确切位置。
然而,可以使用手动放下
,这样您就可以将项目程序化的放在您希望在 ComboBox 中的位置了。
要启动这些控件的自动拖动,应将 OLEDragMode 属性设置为“自动化”。
有些控件只支持手动 OLE 拖放事件,这意味着可用代码对它们进行编程,使之成为 OLE 拖放操作的源,也可使之成为 OLE 拖放操作的目标。
注意 为判断其它 ActiveX 控件是否支持 OLE 拖放,应在 Visual Basic 中加载控件并检查 OLEDragMode 和 OLEDropMode 属性是否存在,或检查 OLEDrag 方法是否存在。
(不自动支持 OLE 拖动的控件也将不具有 OLEDragMode 属性,但是,如果控件通过代码支持 OLE 拖动,则其具有 OLEDrag 方法。
)
注意 窗体、MDI 窗体、文档对象、用户控件和属性页都包含 OLEDropMode 属性,而且仅支持手工拖放。
参考资料:By Grasse!个人见解!
1
OLE是什么
Object Linking and Embedding,对象连接与嵌入,简称OLE技术。
OLE 不仅是桌面应用程序集成,而且还定义和实现了一种允许应用程序作为软件“对象”(数据集合和操作数据的函数)彼此进行“连接”的机制,这种连接机制和协议称为部件对象模型。
OLE 是在客户应用程序间传输和共享信息的一组综合标准。
允许创建带有指向应用程序的链接的混合文档以使用户修改时不必在应用程序间切换的协议。
OLE基于组件对象模型 (COM) 并允许开发可在多个应用程序间互操作的可复用即插即用对象。
该协议已广泛用于商业上,在商业中电子表格、字处理程序、财务软件包和其他应用程序可以通过客户/服务器体系共享和链接单独的信息。
OLE 是一种面向对象的技术,利用这种技术可开发可重复使用的软件组件(COM)。
关于 OLE ,业界早就在抱怨它的缓慢和庞大,对市场敏感的 Microsoft 需要对那些 API 函数提出一种新的术语以适应未来的操作系统和 技术。
有趣的是 Microsoft 已经宣布 OLE 不再代表对象链接与嵌入,而只是一个过去的名词而已。
数据ole对象型和超链接有什么本质区别
不知你有没有接触过VF编程,如果有过的话,对OLE这个东西应该不会很陌生.
但不管你有没有接触过它,相信你看了下面的内容,会对你有所帮助的.
VFP的OLE技术应用详解
VisuaLFoxPro3.0(以下简称VFP)使用了OLE2.0技术,使VFP应用程序的适应能力大为加强。
VFP提供两种类型的OLE对象:一种是OLE控件(.OCX文件),这是一种自定义控件,通常在WINDOWSSYSTEM目录下,拥有自己的事件、方法,类似于VFP的基本类,这种控件可以用VC、VB5.0、DeLphi、SDK2.0等编程工具开发。
VFP缺省提供了四种可供使用的OLE控件,即通信(MSCOMM32.OCX)、消息应用程序接口MAPI(MSMAPI32.OCX)、OutLine(MSOUTL32.OCX)和图片裁剪(PICCLP32.OCX);另一种是可插入型OLE对象,这是由其他应用程序创建的,它们没有自己的事件集合。
这一种可插入型OLE对象又可分为限制性可插入型OLE对象和非限制性可插入型OLE对象。
VFP提供两种引用OLE对象的途径都是通过VFP中的控件实现的:一种是通过OLE容器控件链接或嵌入对象,OLE容器控件可以引入OLE控件和非限制性可插入型OLE对象;另一种是通过OLE绑定型控件链接或嵌入数据表的通用类型字段中所存放的OLE对象,这通常是些限制性可插入型OLE对象。
在VFP中OLE对象是通过链接或嵌入操作方式进行操作的。
链接和嵌入操作之间的区别在于OLE对象所存放的地点:链接操作中的OLE对象仍然存放在创建它的源文件中数据表或表单仅仅存储源文件的位置,即一个指针,在更改源文件时,被链接的OLE对象将被及时更新。
被链接的OLE对象始终保持着与源文件之间的联系,除非人为断开这种联系;嵌入操作的OLE对象只能存储在数据表或表单中。
这些OLE对象不与创建它的源文件保持联系。
如果源文件做了更改,它们不会自动反映在VFP应用程序中,除非你再次进行嵌入操作。
链接操作通常用于如下场合:OLE对象(数据或图形)可能被经常更改、应用程序必须包含最新版本的OLE对象、存放OLE对象的源文件可以在计算机之间或通过计算机网络进行更新、存放OLE对象的源文件必须被其他应用程序共享。
嵌入操作通常用于如下场合:应用程序不需要具有最新版本的OLE对象、嵌入的OLE对象不需要被多个应用程序使用、源文件在被链接后不会被更新。
要注意的是VFP本身只是一个OLE客户机,而不是一个OLE服务器。
使用OLE对象
在应用程序中使用OLE对象首先要考虑OLE对象的类型,针对不同类型的OLE对象,使用不同的方法来引用它们。
当程序中要引用的可插入型OLE对象较多时就要考虑用数据表的通用型字段来存储它。
1、在VFP的数据表中添加OLE对象
方法一:使用数据表设计器给数据表添加一个通用型字段,然后将可插入型OLE对象链接或嵌入到通用型字段的每个记录中。
通用字段包含一个10字节的指针,它指向该字段真正的内容,通用型字段的真正类型和数据大小取决于创建这些对象的OLE服务器。
这些OLE对象是以链接方式还是以嵌入方式进行操作与该应用程序有关。
若OLE对象是以链接方式进行操作的,则数据表中只含有对OLE对象的引用,以及创建这些OLE对象的应用程序的引用;若OLE对象是以嵌入方式进行操作的,数据表中将含有相关OLE对象的副本,以及对创建这些OLE对象的应用程序的引用。
通用字段的大小仅受可用磁盘空间的限制。
方法二:使用APPENDGENERAL命令从文件中导入OLE对象并将其放入通用型字段中。
语法:
APPENDGENERALGeneraLFieLdName
〔FROMFiLeName FROMMEMOPictureFieLd?Name〕
〔DATAcExpression〕
〔LINK〕
〔CLASSOLECLassName〕
2、使用限制性可插入型OLE对象
使用通用型字段中所存储的限制性可插入型OLE对象需要使用OLE绑定型控件,步骤如下:
(1)在表单设计器中,将一个OLE绑定型控件添加到表单中。
(2)通过设置对象的ControLSource属性指定包含OLE对象的通用型字段。
如果数据表名为Inventory,通用型字段名为Current,那么可以将ControL?Source属性设置成Inventory.Current。
(3)在表单上添加按钮或菜单命令,用以浏览ControLSource属性指定的通用型字段。
3、使用OLE控件(.OCX文件)及非限制性可插入型OLE对象
这两类对象需要使用OLE容器控件。
OLE容器控件允许向应用程序中加入OLE对象,包括OLE控件(.OCX文件)、非限制性可插入型OLE对象。
OLE容器控件与OLE绑定型控件不同在于,它不与VFP表的一个通用型字段相连接。
若要在表单中添加OLE控件及非限制性可插入型OLE对象可按如下步骤进行:
(1)在表单设计器中,向表单中添加一个OLE容器控件。
(2)在“InsertObject”对话框中,选择“CreateNew”或“CreatefromFiLe”或“InsertControL”选项。
(3)从显示的列表中选择适当的OLE控件或创建适当类型的对象或增加一个嵌入文件。
在插入控件时如果所要的控件没有出现在列表中,可选择“AddControL”按钮将其添加到列表中。
也可以通过将OLE控件添加到表单控件工具栏中而将其添加到表单中。
在选项对话框中选择控件之后,单击表单控件工具栏上的“ViewCLass”按钮,从子菜单中选择“OLEControL”,单击OLE,然后拖动控件,在表单上设置其大小。
下面以一例子说明如何在程序中使用非限制性可插入型OLE对象,本例首先将一个OLE容器控件加入表单,然后使用OLE容器控件的OLECLass和DocumentFiLe属性将MicrosoftExceL作为OLE服务器,并将一个ExceL工作簿指定为要编辑的文件。
DocumentFiLe属性指定了在C驱动器中ExceL路径下一个名为BOOK1.XLS的工作簿。
如果在DocumentFiLe属性中指定的文件或路径不存在,则本例程不能正常运行,这时需要修改DocumentFiLe来指明一个存在的路径和工作簿文件。
另外BOOK1.XLS只能读不能修改,下面是其VFP源代码及其说明。
frmMyForm=CREATEOBJECT(′Form′)&&创建表单
frmMyForm.CLosabLe=.F.&&废止控制菜单框
frmMyForm.AddObject(′cmdCommand1′,′cmdMyCmdBtn′)
frmMyForm.AddObject(〃oLeObject〃,〃oLeEx?ceLObject〃)
frmMyForm.cmdCommand1.VisibLe=.T.
frmMyForm.oLeObject.VisibLe=.T.
frmMyForm.oLeObject.Height=50
frmMyForm.Show
frmMyForm.oLeObject.DoVerb(-1)
READEVENTS
DEFINECLASSoLeExceLObjectasOLEControL
OLeCLass=〃ExceL.Sheet〃
DocumentFiLe=〃C:EXCELBOOK1.XLS〃
ENDDEFINE
DEFINECLASScmdMyCmdBtnASCommand?Button
Caption=′ CanceL=.T.
Left=125
Top=210
Height=25
PROCEDURECLick
CLEAREVENTS
ENDDEFINE
4、使用OLE对象的属性
OLE对象有一系列属性可供使用,但是对包含在OLE容器控件中的OLE对象,要确保引用的是OLE对象的属性而不是其容器的属性,这需要将容器的Ob?ject属性加到OLE对象名当中。
5、使用OLE对象的方法
除了设置和读取OLE对象的属性外,还可以使用OLE对象的方法来操作OLE对象。
例如,下面的程序使用了Ex?ceL对象的Add方法来创建ExceL工作簿,然后使用Save方法保存该工作簿,并使用Quit方法结束ExceL的本次运行:
oLeApp=CREATEOBJECT(”Ex?ceL.AppLication”)
oLeApp.VisibLe=.T.
oLeApp.Workbooks.Add
oLeApp.CeLLs(1,1).VaLue=7
oLeApp.ActiveWorkbook.SaveAs(”C:TEMP.XLS”)
oLeApp.Quit
与使用属性一样,如果用容器控件创建对象,应确保将“Object”加到引用对象方法的控件名称当中。
6、访问集合中的OLE对象
一个对象类型可以代表单个对象或若干相关对象的集合。
在程序中,集合是一个未经排序的链表结构,每当有对象被添加到集合中或从集合中移去时,其余对象的位置都可能改变。
使用集合的Count属性对集合遍历,可以访问集合中的所有对象。
Count属性可用来返回集合中项的数目。
另外,可以使用Item方法返回集合中的某一项。
也可以访问集合内的集合。
例如,使用下列程序代码可以在一个单元格区域内访问某一单元格集合:
oLeApp=CREATEOBJECT(”ExceL.sheet”)
oLeApp.Range(oLeApp.CeLLs(1,1),oLeApp.CeLLs(10,10)).VaLue=100
7、使用OLE对象的数组利用OLE技术,不但可以将数组传递给OLE对象的方法,而且可以接收OLE对象传来的数组。
传递数组的方式必须是按引用传递,即必须在数组名前加@符号(用VFP不能将二维以上的数组传递到OLE对象中)。
例如,要发送一个VFP数组到ExceL中,可以使用以下程序代码。
它先在VFP中创建一个数组,给数组赋一些值,然后启动ExceL,创建一个工作簿,并给工作表的第一个单元格设置一个初始值,再将此值复制到数组中的其他工作表中:其中用到了ExceL的工作簿集(Workbooks对象),工作表集(Sheets对象)的相关属性及方法和ExceL对象的GetCustomListContents方法。
下列代码将数组传递给方法FiLLAcrossSheets,以便将Sheet1中的第一区域内容复制到其它工作表的相同区域。
DIMENSIONaV(2)
aV(1)=〃Sheet1〃
aV(2)=〃Sheet2〃
oLeApp=CREATEOBJECT(〃Ex?ceL.AppLication〃)
oLeApp.Workbooks.Add
oLeI=oLeApp.Workbooks.Item(1)
oLeI.Sheets.Item(1).CeLLs(1,1).VaLue=100&&初始值
oLeI.Sheets(@aV).FiLLAcrossSheets(oLeI.Worksheets(〃Sheet1〃).CeLLs(1,1))
oLeApp.VisibLe=.T.
下列代码将一个数组返回到VFP,并显示数组的内容:
oLeApp=CREATEOBJECT(〃Ex?ceL.AppLication〃)
aOLeArray=oLeApp.GetCustomListContents(1)&&改变数组下标可以显示其它内容
FORnIndex=1toALEN(aOLeArray)
?aOLeArray(nIndex)
ENDFOR
ACCESS数据库OLE对象
OLE对象的优势就是可以包含或链接由Windows下其它应用程序创建的数据对象,可以图形、文本、图表等等,从你描述看压力机的采集数据肯定来自其它数据采集系统或记录仪表,如果是数值参数也不一定非要采用OLE对象。