TreeView virtual

Este control utiliza un paradigma diferente para la gestión de árboles que otros controles de este tipo
Descargar ahora

TreeView virtual Clasificación y resumen

Anuncio publicitario

  • Rating:
  • Licencia:
  • LGPL
  • Nombre del editor:
  • Mike Lischke
  • Sistemas operativos:
  • Windows All
  • Tamaño del archivo:
  • 707 KB

TreeView virtual Etiquetas


TreeView virtual Descripción

El TreeView virtual fue diseñado para ser un control de árboles construido a partir de terreno. Más de 5 años de desarrollo lo convirtieron en uno de los controles de árboles más flexibles y avanzados disponibles en la actualidad. Virtual TreeView comienza con el reclamo para mejorar muchos aspectos de las soluciones existentes e introduce algunas nuevas tecnologías y principios que no estaban disponibles antes. Como el nombre ya indica, este control utiliza un paradigma diferente para la gestión de árboles que otros controles de este tipo. No sabe nada sobre los datos que administra (excepto su tamaño), ni siquiera los subtítulos de un nodo. Todo se recupera de la aplicación a través de eventos (o descendientes a través de métodos anulados). Virtual TreeView ha sido cuidadosamente diseñado y probado a fondo. El control demostró su concepto, así como la condición física diaria ya en muchos productos comerciales y proyectos de freeware. Principales características: general: VIRTUAL TREAVIEVIO COMO PROPIEDAD DE DOCUMENTO El editor VISTOVIET es extremadamente rápido. ¡Agregar un millón de nodos lleva solo 700 milisegundos *! Esto lo hace actualmente la vista del TreeView más rápida disponible en el mercado Delphi / BCB. Virtual TreeView tiene una impresión de pie de memoria muy pequeña. Al asignar solo unos 60 bytes por nodo (en el árbol de cuerdas, el árbol base usa solo 56 bytes) está bien preparado para mantener un millón de ellos. Virtual TreeView está optimizado para el acceso a alta velocidad. Se tarda como 0.5 segundos para atravesar un millón de nodos * Dependiendo de los estados necesarios de validación y validación de nodos. Multiselection se admite, incluida la selección restringida, de modo que solo se pueden seleccionar los nodos de cierto nivel inicial. Se ha puesto mucho esfuerzo en el desarrollo de algoritmos efectivos por ejemplo. Para permitir la modificación de un conjunto de selección ya grande aún interactivamente. Dibujar todo el árbol a un mapa de bits o la impresora es compatible con el método central TBASEVIRTUTTREETREE.PAINTTREE. Los mensajes wm_print y wm_printclient se manejan correctamente que permiten que las cosas les permiten dibujar un árbol en un mapa de bits (por ejemplo, para las ventanas en capas o para implementar la caída animada de los controles que usan VT como control desplegable). Hay un evento tbasevirtualtree.onshint para mostrar los consejos específicos del nodo. Hay un evento TBASEVIRTUTTREETREE.ONETHELPCONTEXT para recuperar las ID de contexto de Ayuda específicas del nodo. Esto incluye el recorrido automático del control de los padres y las ventanas que se invoca cuando el usuario presionó F1 Hay un evento tbasevirtualtree.ongetpopupmenu para recuperar menús emergentes específicos del nodo, incluye un recorrido automático de árboles. Los botones del mouse medio y derecho se pueden usar, además del botón izquierdo y admiten todo lo que sea posible con el botón izquierdo (arrastre, selección, etc.). Estos botones alternativos se pueden cambiar, por supuesto. Se puede usar una imagen de fondo fija en el árbol y se puede dar un cierto desplazamiento, por ejemplo. Para simular los fondos compartidos. Se admite el estilo caliente para los nodos (al igual que enlaces en una ventana del navegador). Se puede asignar un cursor especial para esta tarea. Soporte de árboles de cuerdas Soporte al texto estático socorizado que aparece después de la leyenda de un nodo (en cada columna) y que se puede formatear de manera diferente a la leyenda, pero no se puede editar, seleccionar, etc. Se admite un modo de columna Auto Span, que permite que una columna ocupe más espacio para su título si hay columnas vacías a su derecha. Esto evita el recorte de subtítulos largos, pero aún permite usar múltiples columnas. Se puede seleccionar un nodo en cada columna (esto está conmutable), así como editado, haciendo que el árbol virtual también sea un tipo de cuadrícula. La tecla tabuladora se puede usar para cambiar el enfoque entre las celdas. Existen una opción especial (togridextensions) para admitir tareas específicas de la cuadrícula. Los nodos pueden tener alturas individuales y la alineación vertical de las imágenes y las líneas de un nodo se pueden ajustar individualmente. Virtual TreeView expone a sus estados internos como pendiente de arrastrar o editar eventos, selección múltiple o en progreso en progreso. Usando esta información, una aplicación puede optimizar su ejecución de código (actualizaciones de estado, etc.). Clasificación Se admite un nodo a través de una aplicación definida Compara llamada de vuelta. Además, un árbol se puede establecer en orden automático. Las sugerencias pueden contener múltiples líneas de texto y reflejar la alineación y la direccionalidad del nodo o la columna para la que se muestran. Para su animación deslizante y la mezcla alfa está disponible. La búsqueda incremental con varias opciones y direcciones también está disponible. El desplazamiento automático del área del cliente ocurre cuando el mouse está cerca de los bordes mientras arrastra y dibuja la selección (Multi Selección). tbasevirtualtree.defaultnodeheight y tvirtualstringtree.defaulttext se puede utilizar para evitar establecer muchos nodos explícitamente al mismo valor de inicio. La implementación de la columna Virtual TreeView también permite columnas fijas, lo que también lo convierte en un buen reemplazo de cuadrícula. Nuevas tecnologías: Para animaciones suaves (por ejemplo, desvanecimiento de sugerencias) Virtual TreeView usa rutinas de ensamblador MMX optimizadas a mano. Este código también se usa para dibujar el rectángulo de selección translúcido en modo de selección múltiple. Esto es muy parecido a lo que admite Windows 2000 y Windows XP, pero también funciona en Windows 95/98 / Me. Se muestra una imagen alfa mezclada de la ventana del árbol mientras hace arrastrar y soltar. En Windows 2000 y se admiten las interfaces de Windows XP IDROPTARGETREPER e IDRAGSOURCEHELPER, que permiten algunos efectos muy limpios (según lo usado por Explorer). En las versiones de Windows de consumo más antiguas, la imagen de arrastre es simulada por el árbol, pero subyace allí algunas limitaciones menores. Virtual TreeView admite temas de Windows XP. Actúa correctamente en los cambios temáticos y los usos para todos los elementos visuales, que están temá la imagen correcta utilizando API nativas. Bajo otros sistemas de Windows, estos estilos son compatibles con un código heredado separado. La conciencia del tema se puede cambiar. Unicode: TVirtualstringtree se implementa utilizando exclusivamente las cadenas Unicode / Amplia. El árbol salva y lee todas las propiedades de Unicode (pectitos de columna por ejemplo, texto de columna, texto de nodo predeterminado y similares a / desde DFM. Todos los dibujos de Unicode apoyan completamente la bidireccionalidad (es decir, el dibujo a la izquierda a la izquierda), la alineación de la columna (izquierda, el centro, a la derecha) y las sugerencias correctas alineadas. Por supuesto, también esta característica está disponible en Windows 95/98 / Me. Soporte de arrastrar y portapapeles: Ole Las transferencias de arrastrar y soltar y Ole Portapapeles son compatibles con el árbol como fuente y objetivo. Alternativamente, la gota VCL Drag'n todavía se puede usar para la compatibilidad. Estos formatos son compatibles con la implementación estándar: Formato serializado nativo (CF_VIRTUALTREEE y CF_VTREFERFERENCIA), que es un formulario compacto para intercambiar datos entre vistas de árbol virtuales (también entre aplicaciones). Hay dos formatos de almacenamiento disponibles: Hglobal y IsTream. Formato de cadena de texto ANSI liso. formato de cadena de texto de unicode liso. Formato de cadena de texto rico (RTF) (con texto Unicode). Formato de cadena de texto HTML (LI] (UTF-8). Este es el formato de portapapeles preferido para Word 2000, etc. y permite copiar y pegar contenido de árbol en un documento de Word con casi ningún código de aplicación. Hay un esquema de registro (RegistervtClipboardFormat) que permite a los descendientes especificar e implementar sus propios formatos de portapapeles. A través de un manejador de caídas, la aplicación puede aceptar cualquier formato OLE sin derivar una propia clase de árbol. Con el fin de ayudar a la procesamiento de los métodos especializados de datos de árboles nativos. Vea también: tbasevirtualtree.processoledata y tbasevirtualtree.processdrop. Dropmarks muestran durante la caída de arrastre donde se insertarán los datos. Esto funciona también con la caída de VCL Drag. El modelo de caída objetivo se ha extendido para permitir que las acciones de la caída anteriores, por debajo o en un nodo. Mientras tanto, los vendedores de otros controles de TreeView han comenzado a usar esta pequeña pero poderosa idea también. AUTÍO AUTOMÁTICO Los nodos que son el objetivo de la caída para más de un intervalo de tiempo ajustable se realiza si se habilita. Encabezado y columnas: Las columnas múltiples son compatibles con una implementación propia del encabezado. Este encabezado ocupa espacio en el área no cliente del control del árbol y admite varios estilos de botones (botones estándar de ListView grueso, botones planos, platos, estilo Windows XP y sorteo del propietario). Las columnas pueden aparecer en cada pedido en la ventana del árbol. Cada columna se puede ocultar, incluida la columna principal que sostiene el árbol real. Cada columna puede convertirse en la columna principal. Las columnas también se pueden mostrar sin el encabezado. Las columnas pueden tener varias opciones (visibles, alicables, modificables, resistibles, arrastrables, etc.). Puede configurar alineaciones individuales para cada columna, así como direccionalidad a la izquierda a izquierda o a la derecha (nuevamente: disponible también en los sistemas de consumo de Windows Non-Oriental y más antiguos). Cada columna puede tener un color propio. El encabezado, así como la clase de colección de columnas y las clases de columnas reales, compatibles con la transmisión. Esto es independiente de la transmisión del TreeView. Comprobar Soporte: Cada nodo en el árbol puede tener su propio tipo de control. Esta puede ser una casilla de verificación (también tristate), botón de radio o botón de nodo. Estos tipos pueden mezclarse libremente para que pueda, por ejemplo, tener un nodo con 10 nodos, de los cuales 5 comprenden un grupo de radio (donde solo se puede verificar uno de estos 5 nodos) y los otros 5 nodos pueden tener una casilla de verificación (o sin cheque tipo en absoluto). Se admiten las casillas de verificación Mixta (Tri-State) con un manejo adecuado para la verificación parcial de los nodos infantiles (como se usa a menudo en los programas de instalación y copia de seguridad). Cambio de estado automático La propagación para el tipo de botón de comprobación mixta es posible (si está habilitado). Verifique los eventos que ocultos y los eventos de ONCHECK también se suministran. Para fines especiales se puede usar un pequeño botón plano, que se llama un botón de nodo. 7 diferentes tipos de imágenes de verificación son posibles. Marcas de verificación oscuras y ligeras, marcas de garrapatas oscuras y ligeras, imágenes de verificación plana, imágenes de Windows XP Revise las imágenes y la aplicación definió las imágenes de verificación. Para obtener una visión general, consulte la propiedad tbasevirtualtree.checkImageKind. Tiempo de diseño: Las propiedades y métodos virtuales de TreeView están registrados con las categorías de Delphi (Delphi 5 y BCB 5 o superior). Se incluye un editor de propiedades especiales para los formatos del portapapeles que permite una simple opción de formato. Esto es particularmente importante, ya que los formatos de portapapeles disponibles deben administrarse como cadenas y también es bastante útil tener una lista de los formatos disponibles, incluso si aún no están habilitados (para saber qué se puede habilitar). Personalización: Los ciclos de dibujo y pintura personalizados se admiten a través de eventos de pintura (para todo el árbol y para cada nodo). Aparte de los tipos de verificación incorporados Se puede usar una imagen de verificación definida por el usuario que es compatible con una lista de imágenes separada (tbaseevirtualtree.customcheckimages). Cada botón en el encabezado se puede dibujar individualmente. Hay tres líneas diferentes Estilos disponibles: líneas de puntos, líneas continuas y líneas definidas de aplicación. Las solicitudes y los descendientes pueden proporcionar su propio editor de nodos (que no necesariamente no debe ser un control único) manejando el evento tbasevirtualtree.oncreeditor o anulando tbasevirtualtree.docreateeditor. Esto permite reemplazar completamente la edición de nodos por reglas propias (negocios). Las solicitudes y los descendientes pueden proporcionar su propia interfaz de Drag Manager al manejar el evento tbasevirtualtree.oncreatedragmanager o anulando tbasevirtTree.DocreatedRagManager. Esto permite personalizar todo el manejo de arrastre OLE del árbol. Nota: la gota VCL Drag'n es administrada por el VCL para que esto no se pueda personalizar. Las aplicaciones y los descendientes pueden proporcionar su propia interfaz de objetos de datos al manejar el evento tbasevirttreetree.oncreatedataobject o anulando tbasevirtualtree.docreatedataobject. Esto permite proporcionar formatos de portapapeles propios. Hay una función de registro (RegistervtClipboardFormat), que permite registrar los descendientes de árboles con el propio Portapapeles y / o formatos de almacenamiento. Las aplicaciones pueden proporcionar formatos de portapapeles propios (sin derivar nuevas clases de árboles) manejando el evento tbasevirtualtree.getuserclipboardFormats. Las aplicaciones y los descendientes pueden modificar completamente el manejo de la llave del árbol al manejar el evento TBASEVIRTUTTREETREE.ONKEYATION.ONEYATION ORINGUING TBASEVIRTUALTREE.DOKEYACHATION. Esto funciona también para la búsqueda incremental. Las aplicaciones y los descendientes pueden personalizar el fondo del árbol que no está cubierto por los nodos, manejando el evento TBASEVIRTTRIETREE.ONPAINTBACKGROUNDETE.ONPAINTBRIERTETREE.DOPAIFBACKGROUND. Para los nodos hay eventos adicionales para la personalización. Las solicitudes y los descendientes pueden personalizar cómo el árbol de cuerdas acorta puntas demasiado largas al manejar el evento tCustomVIRTUALTRINGTREE.ONSHORTENSIRTINGTRING ORINGUING TCUSTOMVIRTUALSTRINGTREE.DOSHORTENTRING. Desplazamiento: barras de desplazamiento plano son compatibles. Pero como conflictan con Windows XP, este soporte está apagado por un símbolo del compilador (USEFLATSCROLLBARS). Habilite este símbolo si realmente desea utilizar barras de desplazamiento planas antes de compilar la unidad de árbol. Cada operación de desplazamiento desencadena un evento TBASEVIRTUTTREEREE.ONSCROLL. Esto permite sincronizar árboles con otros controles. Hay propiedades (por ejemplo, tbasevirtualtree.offsetxy) que permiten desplazar el contenido del árbol a cualquier posición en el código sin enviar mensajes alrededor. se admite la panorámica y el desplazamiento de la rueda. Es decir, al hacer clic en la rueda del mouse o presionar y mantenerlo mientras mueve el mouse alrededor de la ventana del árbol se desplace suavemente. STREAMING: Se ha implementado la serialización de contenido de árbol sofisticado para permitir el ahorro y la restauración de un árbol a / desde flujos. Esto incluye también los datos del usuario, siempre y cuando se pueda escribir en un flujo. Virtual TreeView permite agregar datos desde Stream, en lugar de reemplazar todo el contenido. El formato interno de la corriente es basado en el trozo, lo que lo hace muy flexible para las mejoras futuras, pero aún mantiene la compatibilidad con las implementaciones más antiguas. Hay un trozo de usuario que toma los datos escritos en la transmisión en el evento tbasevirtualtree.onsavenode. Los datos de este trozo de usuario se pueden leer en tbasevirtualtree.onloadNode. Soporte de desarrollador: Se ha tenido cuidado especial para formatear el código fuente de Virtual TreeView de manera consistente. Una gran parte de toda la implementación son comentarios que describen el funcionamiento interno. En consecuencia, los métodos y las propiedades se ordenan alfabéticamente dentro de su alcance (privado, protegido, público, publicado). La única excepción son los constructores y los destructores que siempre aparecen en la parte superior de la sección pública en la Declaración de la clase y siempre son los primeros métodos en la implementación de la clase. Para cada evento hay un método virtual que llama al manejador de eventos. Esto permite que los descendientes se den cuenta de cada evento sin asignar un controlador. Los nombres de estos métodos corresponden directamente a los eventos utilizando el patrón: DEVENTNAME. Se han tomado muchas medidas para garantizar la compatibilidad de Borland C ++ Builder. Esto es particularmente difícil porque la traducción automática de Delphi al código C ++ en BCB es Buggy. Hay un mecanismo fácil y potente para que los escritores de descendientes asignen sus propios datos sobre una base por nodo. Simplemente llame a tbasevirtualtree.AllateInternalData para registrar sus necesidades. Esto no influirá en el código de aplicación existente o futuro si, en consecuencia, utiliza tbasevirtualtree.getnodedata para el acceso a los datos del usuario. Edición: Los editores definidos por la aplicación son compatibles a través de una interfaz de edición de enlace. Una implementación genérica (no unicode) del editor también está disponible. Cada columna en el árbol es editable si está habilitado (consulte TCustomVirtualTreeOptions.SelectionOptions.ToExtendedfocus). Utilidades: Para su conveniencia, se exponen algunas de las funciones de uso interna que son de interés general. Alphablend: un procedimiento de propósito general para combinar una fuente en un mapa de bits de destino utilizando varios modos diferentes. DRAWTEXTW: una implementación parcial de la API DRAWTEXT que admite Unicode. Este método solo tiene un talón en Windows 95/98 / Me. SHORTENSTRING: Una función de propósito general que hace que un ajuste de ancho de ancho determinado en un espacio determinado. Esto se implementa parcialmente por la API de DRAWTEXT Windows, pero además se preocupa por la alineación de derecha a izquierda y funciona con Unicode también en Windows 95/98 / Me.


TreeView virtual Software relacionado

Pyffi

Una biblioteca de Python para procesar archivos binarios estructurados ...

346 2.7 MB

Descargar