Red de conocimiento informático - Computadora portátil - Tutorial básico de DELPHI: portapapeles e intercambio dinámico de datos (1)[1]

Tutorial básico de DELPHI: portapapeles e intercambio dinámico de datos (1)[1]

El intercambio de datos entre aplicaciones es una característica importante de los entornos multitarea como Windows. Como herramienta de desarrollo basada en Windows, Delphi admite los siguientes cuatro métodos de intercambio de datos: Portapapeles, Intercambio dinámico de datos (DDE) y Objeto. Incrustación de conexión (OLE) y bibliotecas de vínculos dinámicos (DLL). Los tres primeros métodos son los más utilizados. OLE es el más potente, DDE es el segundo y el portapapeles es el más cómodo de usar. Analice el portapapeles y el intercambio dinámico de datos. Vea cómo utilizar OLE para implementar el intercambio de datos. El siguiente capítulo utilizará bibliotecas de enlaces dinámicos (DLL) para el intercambio de datos en el Capítulo 10

El portapapeles y sus aplicaciones

En esencia, el portapapeles es solo un bloque de memoria global. Después de que la aplicación transfiere los datos al portapapeles, transfiere la propiedad del bloque de memoria relevante de la aplicación al propio Windows modificando el indicador de asignación del bloque de memoria. Otras aplicaciones pueden encontrar este bloque de memoria a través de un identificador y leer datos del bloque de memoria. De esta manera, realizan la transmisión de datos entre diferentes aplicaciones.

Aunque la función del portapapeles es relativamente simple y no puede realizarse en tiempo real. transmisión, es la base para DDE y OLE más complejos. Para algunas aplicaciones que solo ocasionalmente necesitan usar datos de otras aplicaciones. Para programas, usar el portapapeles es una manera conveniente y rápida.

Delphi encapsula la mayor parte de la información. funciones del portapapeles en una clase TClipboard y también integra las funciones de transmisión de texto más utilizadas (incluida la función de transmisión de imágenes DBImage) es un método para colocar los componentes correspondientes como componentes para que los usuarios puedan usar fácilmente el portapapeles para programar

Utilice el portapapeles para transferir texto

La transferencia de texto al portapapeles utiliza principalmente los siguientes tres métodos: CopyToClipboard, CutToClipboard y PasteFromClipboard. Los componentes que contienen estos métodos se muestran en la siguiente tabla.

La tabla contiene los componentes del método del portapapeles

 ━━━━━ ━━━━━━━━━━━━━━━━━━━━━━

Componentes del método

TDBEdit TDBMemo

TDBImage

CopyToClipboard TEdit TMemo TMaskEdit

TOLEContainer

TDDEServerItem

TDBEdit TDBMemo

p>

CutToClipboard TDBImage

TEdit TMemo TMaskEdit

TDBEdit TDBMemo

PasteFromClipboard TDBImage

TEdit TMemo TMaskEdit

 ━━━━━━━━━━━━━━ ━━━━━━━━━━━━━

A excepción de TDBImage, el resto están todos relacionados Control de texto

El texto debe seleccionarse antes de transferirse al portapapeles

Si la propiedad AutoSelect de TMaskEdit es True, el texto se seleccionará automáticamente cuando MaskEdit obtenga el foco de entrada. Si la propiedad HideSelection de TEdit TMemo es True, el estado del texto seleccionado se ocultará automáticamente cuando el. el foco se pierde y luego se muestra nuevamente cuando se recupera el foco

La siguiente declaración corta el texto seleccionado en MaskEdit al portapapeles

MaskEdit CutToClipboard

Lo siguiente; La instrucción pega el texto del portapapeles en el cursor actual de Memo

<

p>Memo PasteFromClipboard;

La clase Portapapeles también se puede utilizar para transmitir texto, consulte la introducción en ( )

Clase Portapapeles

Para facilitar el uso de La operación Portapapeles Delphi define una clase TClipboard en la unidad de biblioteca Clipbrd y predefine una variable Portapapeles como una instancia de la clase TClipboard, de modo que los usuarios no tengan que definir ellos mismos una instancia de TClipboard en la mayoría de las situaciones

Utilizar el portapapeles La clase puede transmitir texto, imágenes y componentes. La clase Portapapeles proporciona las propiedades y métodos correspondientes para implementar estos métodos. La tabla enumera los significados de las propiedades y métodos de TClipboard.

Tabla de propiedades de TClipboard

 ━━━━━━━━━━━━━━━━━━━━━━━━━━━

Significado del atributo

─── ── ──────────────────────

AsText guarda el texto del portapapeles y solo se puede configurar en tiempo de ejecución

FormatCount está disponible Número de formatos de portapapeles

Formatos Cadenas de formatos de portapapeles disponibles

 ━━━━━━━━━━━━━━━━━━━━━━━━ ━ ━━

Método de tabla TClipboard

 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ━ ━━━━━━━

Significado del parámetro del método

───────────────────────── ───────────

Borrar no borra el contenido del portapapeles

Asignar fuente:TPersistent Copia el objeto especificado por el parámetro Fuente al portapapeles. Comúnmente utilizado para gráficos e imágenes Objeto

Abrir no abre el portapapeles y evita que otras aplicaciones cambien su contenido

Cerrar no cierra el portapapeles abierto

SetComponent Fuente:TPersistent Copia el componente al Portapapeles

GetComponent Owner recupera un componente del portapapeles y lo coloca

Parent:TPersistent

SetAsHandle Formato:Word proporciona el identificador de los datos de formato especificado al portapapeles Tipo de retorno THandle

GetAsHandle Formato:Word Devuelve el identificador de los datos de formato especificados por el portapapeles Tipo de retorno THandle

HasFormat Formato:Word Determina si. el portapapeles tiene el formato dado Tipo de retorno Booleano

SetTextBuf Buffer:PChar Establece el contenido de texto del portapapeles

 ━━━━━━━━━━━━━━━. ━━━━━━━━━━━━ ━━━━━━━━━━

Los formatos de datos posibles en el portapapeles son los siguientes

Formatos de datos del portapapeles de tabla y sus significados

 ━━ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Significado del formato de datos

───── ─────────────────────────

CF_TEXT Cada línea de texto termina con CF_LF y nil marcan el final del texto

CF_BITMAP Mapa de bits de Windows

CF_METAFILE Metarchivo de Windows

CF_PICTURE TPobjeto tipo imagen

CF_OBJECT Cualquier TPersistente

Objetos de tipo

 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Uso de TClipboard Para realizar la transmisión de texto, utilice la propiedad AsText y el método SetTextBuf

La propiedad AsText proporciona comodidad para las operaciones del portapapeles de componentes que no son de control, como

Portapapeles AsText := Formulario Caption;

Copia el título del Formulario al portapapeles

Label Caption := Portapapeles AsText

Escribe el texto del portapapeles a la Etiqueta

p>

Se utiliza SetTextBuf Copia una cadena de más de caracteres al portapapeles

Usa el portapapeles para transferir imágenes

Copia

Contenido de la imagen El componente y los gráficos del formulario se pueden copiar directamente al portapapeles. Utilice el método Asignar del portapapeles para copiar la imagen.

Por ejemplo:

Asignar portapapeles (imagen)

.

Copie la imagen en Imagen al portapapeles lishixinzhi /Article/program/Delphi/201311/25228