4D v16.3Arrastrar y soltar |
||
|
4D v16.3
Arrastrar y soltar
Arrastrar y soltar
4D dispone de funciones integradas que le permiten arrastrar y soltar objetos en sus formularios y aplicaciones. Es posible arrastrar y soltar un objeto sobre otro, ubicado en la misma ventana o en otra ventana. En otras palabras, usted puede arrastrar y soltar al interior de un proceso o entre diferentes procesos. Igualmente usted puede arrastrar y soltar objetos entre formularios 4D y otras aplicaciones y viceversa. Por ejemplo, es posible arrastrar y soltar un archivo de imagen GIF en un campo imagen 4D. También es posible seleccionar texto en una aplicación de procesamiento de palabras y soltarla en una variable de texto 4D. Finalmente, es posible soltar objetos directamente en la aplicación sin tener necesariamente un formulario de fondo. El Método de base On Drop puede utilizarse para administrar la acción de arrastrar y soltar en este caso. Esto significa, por ejemplo, que puede abrir un documento 4D Write soltándolo en el icono de la aplicación 4D Nota: como introducción, asumimos que una acción arrastrar y soltar “transporta” datos de un punto a otro. Más adelante, veremos que arrastrar y soltar también puede ser una metáfora ara todo tipo de operación. Para arrastrar y soltar un objeto sobre otro objeto, debe seleccionar la Propiedad arrastrable para ese objeto en la ventana de la Lista de propiedades. En una operación arrastrar y soltar, el objeto que se arrastra es el objeto fuente. Para hacer que un objeto sea soltable, es decir que el objeto pueda ser el destino de una operación de arrastrar y soltar, debe seleccionar la propiedad soltable para ese objeto en la Lista de propiedades. En una operación arrastrar y soltar, el objeto que recibe los datos es el objeto de destino. Arrastrar automático y Soltar automático: Estas propiedades adicionales están disponibles para campos y variables de tipo texto, combo boxes y list boxes. La opción Soltar automático también está disponible para campos y variables tipo imagen. Pueden utilizarse para activar un modo arrastrar y soltar automático basado en copiar el contenido (la acción arrastrar y soltar ya nos es administrada por los eventos de formulario 4D). Por favor consulte el párrafo "Arrastrar y saltar automático" al final de esta sección.Por defecto, los objetos creados recientemente no poseen ninguna de estas propiedades. Es su decisión seleccionar estas propiedades. Todos los objetos en un formulario de entrada o en un diálogo, pueden ser definidos como arrastrables y soltables. Los elementos individuales de un array (por ejemplo, un área de desplazamiento), los elementos de una lista jerárquica o las filas en una list box pueden ser arrastrables y soltables. Por el contrario, usted puede arrastrar y soltar un objeto sobre un elemento individual de un array o de una lista jerárquica o una línea de un list box. Sin embargo, no puede arrastrar y soltar objetos del área de detalle de un formulario de salida. Igualmente puede administrar arrastrar y soltar en la aplicación, fuera de todos los formularios, utilizando el Método de base On Drop. Fácilmente puede crear una interfaz de usuario arrastrar y soltar, porque 4D le permite utilizar todo tipo de objeto activo (campo o variable) como objetos fuente o de destino. Por ejemplo, usted puede arrastrar y soltar un botón. Notas:
Un objeto que es arrastrable y soltable también puede ser soltable en sí mismo, a menos de que rechace la operación. Para más detalles, consulte los párrafos siguientes. La siguiente imagen muestra la ventana de la Lista de propiedades con las propiedades Arrastrable y Soltable definidas para el objeto seleccionado: La gestión de arrastrar y soltar por programación está basada en tres eventos de formulario: On Begin Drag Over, On Drag Over y On Drop. Note que el evento On Begin Drag Over se genera en el contexto del objeto fuente del arrastrar mientras On Drag Over y On Drop se envían al objeto de destino únicamente. Para que la aplicación procese estos eventos, deben haber sido seleccionados de una forma adecuada en la Lista de Propiedades: El evento de formulario On Begin Drag Over es seleccionable para todos los objetos de formulario que puedan arrastrarse. Se genera en todos los casos donde el objeto tenga la propiedad Arrastrable. A diferencia del evento de formulario On Drag Over, On Begin Drag Over se llama dentro del contexto del objeto fuente de la acción arrastrar. Puede llamarse desde el método del objeto fuente o desde el método del formulario del objeto fuente.Este evento es útil para la gestión avanzada de la acción arrastrar. Puede utilizarse para:
Los datos de 4D se colocan en el portapapeles antes de llamar al evento. Por ejemplo, en el caso de arrastre sin la acción Arrastre automático, el texto arrastrado ya está en el portapapeles cuando se llama el evento. El evento On Drag Over se envía repetidamente al objeto de destino cuando el puntero del ratón se mueve sobre el objeto. En respuesta a este evento, usted generalmente:
Para aceptar arrastrar, el método del objeto de destino debe devolver 0 (cero), de manera que usted escribe $0:=0. Para rechazar el arrastrar, el método de objeto debe devolver -1 (menos uno), de manera que usted escribe $0:=-1. Durante un evento On Drag Over, 4D trata el método del objeto como una función. Si no devuelve ningún resultado, 4D asume que se acepta arrastrar. Si acepta el arrastrar, el objeto de destino se activa. Si lo rechaza, el objeto de destino permanece inactivo. Aceptar el arrastrar no significa que los datos arrastrados sean insertados en el objeto de destino. Sólo significa que si el botón del ratón fue liberado en este punto, el objeto de destino aceptaría los datos arrastrados. Si no procesa el evento On Drag Over para un objeto soltable, el objeto se activará para todas las operaciones de arrastrar, sin importar la naturaleza y tipo de los datos arrastrados. El evento On Drag Over le permite controlar la primera fase de una operación de arrastrar y soltar. No sólo puede probar si el tipo de los datos arrastrados es compatible con el objeto de destino y luego aceptar o rechazar el arrastre; usted puede simultáneamente notificar al usuario de este hecho, porque 4D activa o no el objeto de destino, en función de su decisión. El código que trata un evento On Drag Over debe ser corto y ejecutarse rápidamente, porque el evento es enviado repetidamente al objeto actual de destino, debido a los movimientos del ratón. Advertencia: a partir de la versión 11 de 4D, si el arrastrar y soltar es un arrastrar y soltar interproceso, lo cual significa que el objeto fuente está ubicado en un proceso (ventana) diferente de la del objeto de destino, el método del objeto de destino para un evento On Drag Over se ejecuta en el contexto del proceso de destino. Para conocer el valor de los elementos arrastrados, debe utilizar los comandos de comunicación interproceso. Generalmente es preferible en ese caso utilizar el evento On Begin Drag Over y los comandos del tema . El evento On Drop se envía al objeto de destino (una sola vez) cuando el puntero del ratón se libera sobre el objeto. Este evento es la segunda fase de la operación arrastrar y soltar, en la cual usted realiza una operación en respuesta a la acción del usuario. Este evento no se envía al objeto si el arrastrar no se ha aceptado durante los eventos On Drag Over. Si procesa el evento On Drag Over para un objeto y rechaza un arrastrar, no ocurre el evento On Drop. Si durante el evento On Drag Over usted ha probado la compatibilidad de tipos de datos entre los objetos fuente y destino y ha aceptado un posible soltar, no necesita probar nuevamente los datos durante On Drop. Usted ya sabe que los datos son compatibles con el objeto de destino. Un aspecto interesante de la implementación de arrastrar y soltar es que 4D le permite hacer lo que usted quiera. Ejemplos:
La interfaz de arrastrar y soltar de 4D es un framework que le permite a cualquier usuario implementar todas las metáforas de interfaz de usuario que usted pueda imaginar. Los comandos DRAG AND DROP PROPERTIES devuelven:
El comando Drop position devuelve el número o la posición del elemento objetivo si el objeto de destino es un array (es decir, un área de desplazamiento) una lista jerárquica, un texto o un combo box, como también el número de columna si el objeto es una list box. Los comandos como RESOLVE POINTER y Type son útiles para probar la naturaleza y el tipo de objeto fuente. Cuando la operación arrastrar y soltar está destinada a copiar los datos arrastrados, la funcionalidad de estos comandos depende de cuántos procesos estén involucrados:
Si las operaciones arrastrar y soltar implican el movimiento de datos heterogéneos o de documentos entre dos aplicaciones 4D o una aplicación 4D y una tercera aplicación, los comandos del tema "Portapapeles" le ofrecerán las herramientas necesarias. De hecho, estos comandos puede utilizarse para administrar el copiar/pegar y arrastrar y soltar de datos. 4D utiliza dos portapapeles: uno para datos copiados (o cortados), el cual es el portapapeles actual, y el otro para los datos que están siendo arrastrados y soltados. Estos dos portapapeles son administrados utilizando los mismos comandos. Usted accede a uno o a otro dependiendo del contexto. Para mayor información sobre la utilización de los comandos del tema "Portapapeles" para operaciones de arrastrar y soltar, por favor consulte la sección . Las áreas de texto (campos, variables, combo boxes y list boxes) como también objetos de imagen permiten el arrastrar y soltar automático, es decir el movimiento o copia de una selección de texto o imagen de un área a otra en un solo clic. Puede utilizarse en la misma área 4D, entre dos áreas 4D, o entre 4D y otra aplicación, por ejemplo WordPad. Nota: en el caso de arrastrar y soltar automático entre dos áreas 4D, los datos son desplazados, en otras palabras, son eliminados del área fuente. Si quiere volver a copiar los datos, mantenga presionadas Ctrl (Windows) u Opción (OS X) durante la acción (bajo OS X, debe presionar la tecla Opción luego de iniciar arrastrar los elementos). El arrastrar y soltar automático puede ser configurado por separado para cada objeto de un formulario vía dos opciones de la Lista de propiedades: Arrastrar automático y Soltar automático.
A partir de la versión 11, 4D permite el arrastrar y soltar de selecciones, de objetos, o de archivos externos a 4D, como por ejemplo los archivos de imágenes. Esta posibilidad debe estar soportada por el código de la base. En las bases convertidas de una versión anterior de 4D, esta posibilidad puede llevar a malfuncionamiento si el código existente no está adaptado. Por esta razón, una opción en las Preferencias puede utilizarse para desactivar esta función: Prohibido soltar datos que no provengan de 4D. Esta opción se encuentra en la página Aplicación/Compatibilidad. Está seleccionada por defecto en las bases convertidas.Cuando esta opción está seleccionada, se rechaza el soltar objetos externos en formularios 4D. Note sin embargo que la inserción de objetos externos continua siendo posible en objetos que tengan la opción Soltar automático, cuando la aplicación puede interpretar los datos soltados (texto o imagen).
Ver también
DRAG AND DROP PROPERTIES
|
PROPIEDADES
Producto: 4D
HISTORIA
ARTICLE USAGE
Manual de lenguaje 4D ( 4D v16) |