Entre las nuevas características del próximo lanzamiento de Delphi, C ++ Builder y RAD Studio 10.4.2 Embarcadero incluirá dos nuevos controles VCL, un control de lista virtualizado y un cuadro de entrada numérica.
Advertencia: esta publicación de blog cubre un producto inédito, que está sujeto a cambios hasta GA.
El lanzamiento de RAD Studio 10.4.2 se acerca y puede unirse a nuestro seminario web de vista previa mañana, consulte https://blogs.embarcadero.com/whats-coming-in-10-4-2-sydney/ . Esta es alguna información previa al lanzamiento (o blogs beta) sobre un área específica, nuevos controles de VCL.
Table of Contents
Nuevo control VCL TControlList
Embarcadero está introduciendo en la biblioteca VCL un nuevo control de lista virtualizado y flexible. La idea detrás de este control es ofrecer un nuevo control VCL de aspecto moderno que ofrece una configuración de interfaz de usuario personalizada y un control de alto rendimiento, que se puede utilizar con listas muy largas. Esta lista representa una única lista de selección y todos los elementos tienen visualmente la misma altura y ancho.
El nuevo control permite al desarrollador definir el contenido diseñando uno de los elementos de la lista utilizando controles gráficos (es decir, descendientes de TGraphicControl) y proporcionar datos al control para mostrar elementos individuales, sin crear todos los controles para todos los elementos. elementos de la lista, pero solo los necesarios para mostrar los datos. Al ser totalmente virtual, la lista puede manejar miles e incluso millones de elementos, ofreciendo un desplazamiento extremadamente rápido. Además de calcular y mostrar solo los elementos que caben en la pantalla, la lista almacena en caché el contenido de los elementos mediante mapas de bits en memoria.
El nuevo control se asemeja al control clásico TDBCtrlGrid: hay un panel para los controles, se le ponen controles y se crean elementos virtuales en tiempo de ejecución. A diferencia de DBCtrlGrid, solo podemos poner TGraphicControl y todos los elementos son virtuales. A continuación, puede ver el control en tiempo de diseño (con la superficie de un solo elemento disponible para editar) y en tiempo de ejecución (con el mismo contenido multiplicado muchas veces).
Esta lista no incluye una colección de elementos con información específica. Los datos se pueden proporcionar a través de enlaces en vivo (incluido el enlace a un conjunto de datos o una colección de objetos) o mediante un evento para consultar los datos de un elemento individual (de modo que el almacenamiento directo y el mapeo dependan completamente del desarrollador) . Para que cada elemento muestre el control llama a un controlador de eventos que puede usar para personalizar la apariencia de cada elemento, en este caso simplemente modificando el título de la etiqueta:
[crayon-67689d268d2c9573912859/]
Con el diseño anterior, 10,000 elementos y múltiples columnas, este código trivial produce un resultado como el siguiente:
En el momento del diseño, hay un diálogo especial con una colección de configuraciones preestablecidas, que incluyen ajustes para las propiedades de TControlList y colecciones de control con propiedades específicas. Utilice las flechas en la parte superior para elegir la configuración principal y puede ajustarla con algunas de las otras opciones de casilla de verificación en la parte inferior. El asistente anula la configuración de la lista de control.
El elemento que diseña se replica (virtualmente) para cada uno de los elementos solicitados con la propiedad ItemCount. La superficie visible del control generalmente permite varios elementos, todos con el mismo ancho y alto. El control tiene 3 diseños diferentes:
- Único para una sola columna de elementos, en cuyo caso el ancho del elemento coincidirá con el ancho del control.
- Multi Top To Bottom permite múltiples columnas y utilizará el espacio vertical disponible antes de pasar a la siguiente columna, ofreciendo desplazamiento vertical.
- Multi Left To Right también permite múltiples columnas, pero usa un diseño diferente y un modo de desplazamiento horizontal (vea la imagen a continuación).
En términos generales, puede utilizar el evento OnClick para cualquier control de la lista de controles. El control admite opciones de DPI alto y estilos VCL y está totalmente habilitado para Live Bindings.
El nuevo componente TControlListButton
No podemos usar TSpeedButton directamente en el panel, porque el control no maneja interacciones especiales como el cambio de estado del botón. Para los controles, que pueden tener diferentes estados, agregamos una clase especial TControlListControl (heredada de TGraphicControl). Puede crear nuevos controles que hereden de la clase TControlListControl y puede usar eventos de mouse para sus elementos. Este es el enfoque utilizado por TControlListButton, el análogo de un TSpeedButton que se puede usar con TControlList. Este botón tiene 3 estilos: botón pulsador, botón de herramienta y enlace.
Nuevo control VCL TNumberBox
El nuevo control VCL TNumberBox es un control de entrada numérico de aspecto moderno modelado a partir del control WinUI NumberBox de la plataforma Windows. El control admite la entrada de números enteros, números de punto flotante con un conjunto dado de dígitos decimales y el formato adecuado, y valores de moneda:
El usuario puede aumentar o disminuir el valor usando los botones de flecha o las teclas permitidas o la rueda del mouse, y también aumentar y disminuir un valor grande usando las teclas Page Up y Page Down. El componente incluye un botón giratorio opcional (configurado con la propiedad de ubicación SpinButtonOptions), que puede ser compacto, integrado o deshabilitado, como se muestra aquí respectivamente:
El componente también admite la evaluación de expresiones simples; si está habilitado, un usuario puede ingresar una expresión como 40 + 2 y el control la reemplazará con el resultado. El control admite cálculos en línea de ecuaciones básicas como multiplicación, división, suma y resta (lo que permite el uso de paréntesis). Tenga en cuenta que puede usar los símbolos + y – tanto como operaciones binarias como unarias, por lo que puede escribir -23 o + 23, puede escribir 55 + 23 y 55-23, e incluso combinarlos como en 53 ++ 23 o 53 –23, que se evalúa como 53 – (-23). así suma los dos valores.
Manténganse al tanto
Eso es todo por ahora. Sintonice el seminario web de vista previa de mañana y (una vez lanzado) descargue la versión de prueba para experimentar con estos nuevos controles VCL.