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