与嵌入的对象相关的数据不是持久的,即当含有 OLE 容器控件的窗体被关闭时,与该控件相关的数据的任何变化将丢失。要将更改的数据从对象保存至文件中,需用 OLE 容器控件的 SaveToFile 方法。数据被保存在文件后,可以在需要的时候打开文件并恢复对象。
如果一个对象被链接 (OLEType = 0-Linked),实际上只有链接的信息和数据的图象被保存在指定的文件里。对象的数据由创建该对象的应用程序来维护。如果用户想把数据改变保存到链接的文件,用户必须从 ActiveX 部件的“文件”菜单选择“保存”指令,因为 SaveToFile 方法只应用于嵌入的对象。
如果对象被嵌入 (OLETpye = 1-Embeded),对象的数据由 OLE 容器控件维护,并能用 Visual Basic 应用程序保存。
OLE 容器控件中的对象只能保存于打开的二进制文件。
要将数据从对象保存到文件中,请按照以下步骤执行:
cmdSaveObject-Click 事件过程说明这些步骤:
Private Sub cmdSaveObject_Click () Dim FileNum as Integer '
取文件号。FileNum = FreeFile
'
打开要保存的文件。Open "TEST.OLE" For Binary As #FileNum
'
保存文件。oleObj1.SaveToFile FileNum
'
关闭文件。Close #FileNum
End Sub
一旦对象被保存至文件中,它将能被打开并显示在 OLE 容器控件里。
注意 当用 SaveToFile 或 ReadFromFile 方法时,将文件定位在紧接对象之后。因此,如果保存多个对象到一个文件里,读取它们的顺序应与写它们的顺序相同。
要将数据从文件读入 OLE 容器控件,请按照以下步骤执行:
cmdOpenObject_Click 事件过程示出了这些步骤:
Private Sub cmdOpenObject_Click () Dim FileNum as Integer '
取文件号。FileNum = FreeFile
'
打开文件。Open "TEST.OLE" For Binary As #FileNum
'
读文件。oleObj1.ReadFromFile FileNum
'
关闭二进制文件。Close #FileNum
End Sub
每当对象的内容被改变,就调用 Updated 事件。这个事件用于决定对象的数据在最后一次保存时是否被更改。为此,在 Updated 事件中设一个全局的变量,指示需要保存的对象。保存对象时,重新设置该变量。