Red de conocimientos turísticos - Información de alquiler - ¿Qué son los objetos OLE en cdr?

¿Qué son los objetos OLE en cdr?

No sé si alguna vez has usado la programación VF, pero si es así, debes estar familiarizado con OLE.

Pero hayas estado expuesto a él o no, creo que leer el siguiente contenido te resultará útil.

Aplicación de tecnología OLE de VFP

VisuaLFoxPro3.0 (en lo sucesivo, VFP) adopta la tecnología OLE2.0, que mejora en gran medida la adaptabilidad de las aplicaciones VFP.

VFP proporciona dos tipos de objetos OLE: uno es el control OLE (archivo .OCX), que es un control personalizado, generalmente en el directorio WINDOWS/SYSTEM, con sus propios eventos y métodos similares al básico. clases de VFP, este control se puede desarrollar utilizando herramientas de programación como VC, VB5.0, Delphi y SDK2.0. VFP proporciona cuatro controles OLE utilizables de forma predeterminada, a saber, comunicación (MSCOMM32.OCX), interfaz de programación de aplicaciones de mensajes MAPI (MSMAPI32.OCX), línea externa (MSOUTL32.OCX) y recorte de imágenes (PICCLP32.OCX). , creados por otras aplicaciones, no tienen su propio conjunto de eventos. Estos objetos OLE conectables se pueden dividir en objetos OLE conectables restringidos y objetos OLE conectables sin restricciones.

VFP proporciona dos métodos para hacer referencia a objetos OLE, los cuales se implementan a través de controles en VFP: uno es vincular o incrustar objetos a través del control contenedor OLE, que introduce controles OLE y objetos OLE conectables sin restricciones; otra es vincular o incrustar un objeto OLE almacenado en un campo común de la tabla de datos a través de un control vinculado OLE, que suele ser algún tipo de objeto OLE conectable restringido. Por lo general, se trata de objetos OLE conectables restringidos.

Los objetos OLE en VFP se pueden manipular mediante operaciones de vinculación o incrustación. La diferencia entre vincular e incrustar es la ubicación del objeto OLE: el objeto OLE en la operación de vínculo todavía se almacena en el archivo fuente que lo creó; la tabla o formulario de datos simplemente almacena la ubicación del archivo fuente, es decir, un; puntero al archivo fuente y cuando aparece el archivo fuente. Cuando se cambia, el puntero se actualiza y el objeto OLE vinculado también se actualiza. Un objeto OLE vinculado siempre permanece vinculado al archivo fuente a menos que la conexión se desconecte artificialmente; un objeto OLE con operaciones incrustadas solo se puede almacenar en una tabla o tabla de datos. Estos objetos OLE no mantienen vínculos a los archivos fuente a partir de los cuales fueron creados. Si se realizan cambios en el archivo fuente, estos cambios no se reflejan automáticamente en la aplicación VFP a menos que se realice nuevamente la operación de incrustación. Las operaciones de enlace se utilizan normalmente en las siguientes situaciones: los objetos OLE (datos o gráficos) pueden cambiar con frecuencia; las aplicaciones deben contener las versiones más recientes de los objetos OLE que contienen objetos OLE; Los archivos fuente deben estar disponibles para otras aplicaciones***. Las operaciones de incrustación se utilizan normalmente cuando la aplicación no necesita tener la última versión del objeto OLE, no es necesario que varias aplicaciones utilicen el objeto OLE incrustado y el archivo fuente no se actualiza después de la vinculación.

Cabe señalar que VFP en sí es sólo un cliente OLE, no un servidor OLE.

Trabajar con objetos OLE

El primer paso para utilizar objetos OLE en su aplicación es considerar los tipos de objetos OLE y utilizar diferentes métodos para hacer referencia a diferentes tipos de objetos OLE. Cuando un programa hace referencia a más objetos OLE conectables, debería considerar el uso de un campo común en una tabla de datos para almacenarlo.

1. Agregue un objeto OLE en la tabla de datos de VFP

Método 1: use el diseñador de tablas de datos para agregar un campo común en la tabla de datos y luego vincule el objeto OLE insertable. o Incrustado en cada registro en un campo común. Un campo universal contiene un puntero de 10 bytes al contenido real del campo. El tipo real y el tamaño de datos del campo universal dependen del servidor OLE que creó estos objetos. El hecho de que estos objetos OLE se ejecuten en modo vinculado o incrustado depende de la aplicación.

Si el objeto OLE está vinculado, la tabla de datos contendrá sólo una referencia al objeto OLE y la aplicación que creó el objeto OLE; si el objeto OLE está incrustado, la tabla de datos contendrá una copia del objeto OLE relacionado y una referencia; a la aplicación que creó el objeto OLE. El tamaño de los campos generales está limitado únicamente por el espacio disponible en el disco.

Método 2: Utilice el comando APPENDGENERAL para importar el objeto OLE del archivo y colocarlo en un campo general. Sintaxis:

APPENDGENERALGeneraLFieLdName

[FROMFiLeName FROMMEMOPictureFieLd?Name]

[DATAcExpression]

[ENLACE]

[ CLASSOLECLassName]

2. Uso de objetos OLE conectables restringidos

El uso de objetos OLE conectables restringidos almacenados en campos generales requiere el uso de controles vinculados a OLE, de la siguiente manera:

(1) En el diseñador de formularios, agregue un control vinculado OLE al formulario.

(2) Especifique los campos comunes que contienen el objeto OLE estableciendo la propiedad ControlLSource del objeto.

(3) Agregue un botón o comando de menú al formulario para navegar al campo común especificado por la propiedad ControlLSource.

3. Utilice controles OLE (archivos .OCX) y objetos OLE conectables sin restricciones.

Estos dos tipos de objetos requieren el uso de controles de contenedor OLE, que permiten agregar objetos OLE. Las aplicaciones incluyen controles OLE (archivos .OCX) y objetos OLE conectables sin restricciones. Los controles de contenedor OLE se diferencian de los controles vinculados OLE en que no están conectados a campos comunes en las tablas VFP.

Para agregar controles OLE y objetos OLE conectables sin restricciones a un formulario, haga lo siguiente:

(1) En el diseñador de formularios, agregue un control contenedor OLE.

(2) En el cuadro de diálogo InsertObject, seleccione la opción "CreateNew" o "CreatefromFiLe" o "InsertControL" en el cuadro de diálogo "InsertObject".

(3) Seleccione el control OLE apropiado de la lista mostrada, o cree un objeto del tipo apropiado o agregue un archivo incrustado.

Al insertar un control, si el control requerido no aparece en la lista, puede agregarlo a la lista seleccionando el botón "AddControL". También puede agregar controles OLE a un formulario agregándolos a la barra de herramientas de controles del formulario. Con el control seleccionado en el cuadro de diálogo Opciones, haga clic en el botón ViewCLass en la barra de herramientas Controles de formulario, seleccione OLEControL en el submenú, haga clic en OLE y luego arrastre el control para establecer su tamaño en el formulario. El siguiente ejemplo muestra cómo utilizar objetos OLE conectables sin restricciones en un programa que primero agrega un control contenedor OLE a un formulario, luego usa Microsoft Excel como servidor OLE usando las propiedades OLECLass y DocumentFiLe del control contenedor OLE y especifica el libro de Excel como el documento a editar. La propiedad DocumentFiLe especifica el libro denominado BOOK1.XLS en la ruta Excel de la unidad C. Si el archivo o la ruta especificados en la propiedad DocumentFiLe no existe, la rutina no funcionará correctamente, por lo que será necesario modificar DocumentFiLe para indicar la ruta y el archivo del libro de trabajo existentes. Además, BOOK1.XLS sólo se puede leer pero no modificar. A continuación se muestra su código fuente VFP y su descripción.

frmMyForm=CREATEOBJECT (′Form′) & & & para crear un formulario

frmMyForm.CLosabLe=.F.F.F.CLosabLe=.F.F.F.F.F.F.F.F.F.F.F.F.F.& & Cancelar control del cuadro de menú

frmMyForm.AddObject(′cmdCommand1′, ′cmdMyCmdBtn′)

frmMyForm.AddObject(〃OoMyCommand1′, ′cmdMyCmdBtn′)

frmMyForm.CLosabLe=.F.AddObject ( 〃oLeObject〃, 〃oLeEx?ceLObject〃)

frmMyForm.cmdCommand1.VisibLe=. T.

frmMyForm.oLeObject.Height=50

frmMyForm.Show

frmMyForm.oLeObject.DoVerb(-1)

REAVENTOS

DEFINECLASSoLeExceLObjectasOLEControL

OLeCLass=〃ExceL.Sheet〃

DocumentFiLe=〃C:\EXCEL\BOOK1.XLS〃