FireMonkey, .NET & Delphi 7 a 13 Parte de sgcUI

sgcNavigation, la misma barra de navegación para FireMonkey, .NET y Delphi 7 a 13

Dale a tu aplicación un menú de navegación moderno en minutos. Un solo control es una barra lateral o un acordeón, se pliega a un riel de iconos con una animación suave, muestra insignias con los contadores de no leídos y funciona por completo con el teclado. Los temas claro y oscuro vienen incluidos, y el formulario con pestañas coloca las pestañas de los documentos en una barra de título con tema, como un navegador web. Un solo modelo y un solo renderizador sin ventana mueven la barra en FireMonkey, WinForms, WPF, Avalonia, la VCL de Delphi 7 a 13 y C++ Builder, así que todos los front ends de tu producto navegan igual.

FireMonkey, WinForms, WPF, Avalonia, VCLDelphi 7 a 13C++ Builder 2007 a 13Edición Community de .NET gratuitaIncluido en sgcUI Standard
Demo SidebarApp con una barra lateral de 8 elementos en los grupos Workspace y Business, Dashboard seleccionado y dos tarjetas KPI a la derecha

Todo lo que necesita el menú de una aplicación

Veinte funciones que convierten una lista de páginas en una estructura de navegación en la que tus usuarios se orientan al instante.

Diseño y modos

Un solo control cubre los dos estilos de navegación que usan las aplicaciones de negocio, y el riel estrecho entre ambos.

Una barra lateral moderna en un solo componente

Diseño y modos

Una barra lateral moderna en un solo componente

La mayoría de las aplicaciones de negocio necesita lo mismo en el borde izquierdo del formulario principal: una lista de páginas, agrupadas por área, con la página actual claramente marcada. Coloca un TsgcVCLNavigationBar en el formulario, alinéalo a la izquierda y añade los elementos. Los encabezados de grupo titulan las filas que tienen debajo con un color atenuado y nunca se seleccionan. La fila seleccionada recibe un fondo teñido con el acento y una barra de acento de 3 píxeles, así que los usuarios siempre ven dónde están. Los estados al pasar el ratón y al pulsar, las sugerencias y las filas deshabilitadas se dibujan por ti, de modo que la barra parece terminada desde la primera ejecución.

  • Mode := nbmSidebar es el estilo predeterminado
  • IsGroup convierte un elemento en un encabezado de grupo
  • ItemHeight y GroupHeight fijan la altura de las filas
  • La rueda del ratón desplaza las listas largas y ScrollIntoView muestra cualquier elemento
  • De derecha a izquierda para árabe y hebreo: los iconos y los títulos intercambian su sitio, y la sangría, los chevrones, las insignias y el botón de contraer están reflejados
Leer el tema de la ayuda
Cambia a un acordeón con una sola propiedad

Diseño y modos

Cambia a un acordeón con una sola propiedad

Las pantallas de ajustes y las consolas de administración suelen tener más secciones de las que caben en pantalla. Establece Mode en nbmAccordion y cada encabezado de grupo se convierte en una sección que abre y cierra los elementos que tiene debajo, con un chevrón a la derecha y los hijos con sangría. Por defecto solo hay un grupo abierto a la vez, lo que mantiene corto un menú largo. Activa AllowMultiExpand cuando los usuarios necesiten varias secciones abiertas a la vez. Los elementos, los eventos y tu código siguen exactamente igual. Los elementos colocados antes del primer encabezado no pertenecen a ningún grupo y se muestran siempre, lo que va bien para una entrada Inicio o Dashboard sobre las secciones.

  • Mode := nbmAccordion cambia toda la barra
  • Expanded abre o cierra un grupo desde código
  • AllowMultiExpand permite que varios grupos sigan abiertos
  • Indent fija la sangría de los elementos hijos
Leer el tema de la ayuda

Diseño y modos

Contracción a un riel de iconos, animada

Las barras laterales anchas le quitan espacio a los datos que tus usuarios han venido a ver. Activa Collapsed y la barra se pliega desde su ancho expandido a un riel de iconos estrecho en unos 150 ms. En el riel solo se dibujan los iconos, el título pasa a ser la sugerencia, los encabezados de grupo se convierten en líneas separadoras y las insignias en puntos, así que no se pierde nada importante. La barra fija su propio ancho, de modo que el contenido que tiene al lado la sigue con alClient. Enlaza la propiedad Collapsed a un botón de hamburguesa, a un ajuste del usuario o al ancho del formulario, y el riel se abre y se cierra igual en modo barra lateral y en modo acordeón.

  • Collapsed alterna entre los dos anchos
  • ExpandedWidth (220) y CollapsedWidth (56) en píxeles lógicos
  • AnimateCollapse activa o desactiva la animación
  • OnCollapsedChange te avisa cuando el riel se abre o se cierra
Leer el tema de la ayuda

Diseño y modos

Gobierna tus páginas desde la selección

Una barra de navegación solo es útil cuando cambia lo que ve el usuario. Haz clic o toca un elemento habilitado y la barra lo selecciona, dispara OnItemClick y después ejecuta el OnClick del elemento. OnSelectionChange es el único lugar donde mostrar la página correspondiente, por ejemplo la pestaña de un TPageControl con las pestañas ocultas, que es exactamente como está construida la demo SidebarApp. SelectedIndex lee y establece la página actual desde código. Deshabilita un elemento al que el usuario aún no puede llegar, explica el motivo en su sugerencia u ocúltalo para los roles que no deban verlo, y la lógica de selección sigue funcionando.

  • SelectedIndex es la página que eligió el usuario
  • OnSelectionChange cambia la página o el marco
  • OnItemClick en la barra y OnClick en cada elemento
  • Enabled, Hint y Visible por elemento
Leer el tema de la ayuda

Estructura de navegación

Un árbol de varios niveles con búsqueda, pestañas de documentos, una ruta de navegación y una paleta de comandos, todo sobre el mismo modelo independiente del marco que la barra.

Demo NavigationShellFMX con un árbol con búsqueda de Mail, Contacts, Calendar y Settings a la izquierda, cuatro pestañas con Work activa y una ruta de navegación Mail, Folders, Work sobre la página

Estructura de navegación

Un árbol de varios niveles con búsqueda

Las aplicaciones grandes se quedan pequeñas con una lista plana de páginas. Establece Mode en nbmTree y la barra se convierte en un árbol con tantos niveles como necesites: los elementos siguen siendo una colección plana y el Depth de un elemento fija su nivel, así que el código que rellena la barra apenas cambia. Cada nivel está sangrado y cada padre se puede contraer. Activa ShowSearch y una fila de búsqueda sobre los elementos filtra el árbol mientras el usuario escribe, mantiene abiertos los padres de cada coincidencia y resalta los caracteres coincidentes. La coincidencia aproximada encuentra 'Settings' a partir de 'stg'. El modo árbol y la búsqueda forman parte de todas las ediciones.

  • Mode := nbmTree y Depth por elemento
  • ExpandAll, CollapseAll y Expand(aIndex, aRecursive)
  • Filter con FilterMode nfmContains o nfmFuzzy
  • ShowSearch dibuja la fila de búsqueda, Esc la borra
  • Derecha e Izquierda expanden y contraen, * expande una rama entera
Leer el tema de la ayuda

Estructura de navegación

Pestañas para los documentos abiertos

Las aplicaciones de estilo documento muestran sus páginas abiertas como pestañas. TsgcFMXNavigationTabs, TsgcVCLNavigationTabs y las tiras de WinForms, WPF y Avalonia dibujan pestañas con un icono, un título, un botón de cierre y un punto de modificado, además de un botón de nueva pestaña y una lista de todas las pestañas. Cuando las pestañas no caben, TabSizing las reduce o aparecen botones de desplazamiento. El Control de una pestaña es la página que la tira muestra mientras la pestaña está activa. En la edición Registrada el usuario también arrastra las pestañas a otro lugar, fija las que deben quedarse y arrastra una pestaña fuera de la tira para abrirla en su propia ventana, y SaveLayout conserva la disposición para la siguiente ejecución.

  • Tabs.AddTab, ActiveIndex y Control por pestaña
  • TabSizing, CloseButtons, ShowNewButton, ShowListButton
  • Ctrl+Tab, clic central para cerrar, OnTabClose puede rechazarlo
  • Solo registrada reordenar arrastrando, pestañas Pinned, OnTabTearOff, SaveLayout y LoadLayout
Leer el tema de la ayuda Reordenar, pestañas fijadas y separación

Estructura de navegación

Una ruta de navegación que sigue al árbol

Los árboles profundos necesitan una forma de ver dónde estás y de saltar hacia arriba. La ruta de navegación muestra el camino como una fila de segmentos, por ejemplo Mail, Folders, Work. Un clic en un segmento vuelve a él, y el chevrón tras un segmento lista sus hijos para ir a otro sitio. Enlázala a una barra de navegación y sigue al elemento seleccionado, o rellénala por su cuenta desde un Path o desde los Segments. Cuando el camino es demasiado largo, los primeros segmentos se pliegan en un botón de desbordamiento. En la edición Registrada, un clic en el área vacía, F4 o Ctrl+L convierten la ruta de navegación en un campo de edición con la ruta completa, como la barra de direcciones de un gestor de archivos.

  • NavigationBar enlaza la ruta de navegación a una barra
  • Path, PathDelimiter y OnGetChildren por su cuenta
  • OnSegmentClick y AutoTruncate
  • Solo registrada modo de edición con OnPathEdit
Leer el tema de la ayuda

Estructura de navegación Solo registrada

Una paleta de comandos para cada comando

Los usuarios avanzados prefieren escribir a buscar en los menús. Pulsa Ctrl+Shift+P y la paleta de comandos se abre en la parte superior de la ventana: escribe unas letras y ordena cada comando por coincidencia aproximada, de modo que 'tgsb' encuentra 'Toggle sidebar', con los caracteres coincidentes resaltados, la categoría o la ruta en un color atenuado y el atajo a la derecha. Con la consulta vacía aparecen primero los comandos usados recientemente. La paleta lista sus propios comandos y todos los orígenes de comandos que añadas: los elementos de una barra de navegación, los botones de una cinta o de una barra de herramientas (Delphi), las acciones de una lista de acciones o un origen propio.

  • Commands.AddCommand con una categoría, palabras clave y el texto del atajo
  • Sources.AddSource para una barra, una cinta, una barra de herramientas o una lista de acciones
  • SaveRecent y LoadRecent conservan la lista de recientes
  • ICommand en los comandos en .NET

Edición Registrada en FireMonkey, VCL, WinForms, WPF y Avalonia. La interfaz IsgcUICommandSource forma parte de todas las ediciones.

Leer el tema de la ayuda Orígenes de comandos

Estructura de navegación

Un formulario con pestañas en la barra de título

Los navegadores, los terminales y los editores modernos ponen sus pestañas en el título de la ventana, de modo que los documentos ganan toda la altura de la pantalla. El formulario con pestañas hace lo mismo con tu aplicación. Colócalo en un formulario y enlázalo con la tira de pestañas: sgcUI quita el título nativo y dibuja una barra de título con tema, con el icono de la ventana, las pestañas, el botón de nueva pestaña y los botones de minimizar, maximizar y cerrar, en el tema sgcUI de la aplicación, Classic o Fluent, claro u oscuro. La ventana conserva su sombra, sus bordes de redimensionado y su comportamiento al maximizarse, y Windows 11 muestra los diseños de ajuste (snap layouts) cuando el puntero se detiene sobre el botón de maximizar. El espacio vacío a la derecha de la última pestaña arrastra la ventana. En la edición registrada el usuario arrastra una pestaña fuera de la tira hacia una ventana nueva y la suelta en la barra de título de otra ventana, como en un navegador web.

  • TsgcVCLNavigationTabbedForm y TsgcFMXNavigationTabbedForm en Delphi y C++ Builder, TsgcWinFormsNavigationTabbedForm, TsgcWpfNavigationTabbedWindow y TsgcAvaloniaNavigationTabbedWindow en .NET
  • Tabs enlaza la tira de pestañas. En Delphi, Notebook mueve la tira de un notebook a la barra de título, mientras las páginas siguen en el notebook
  • Un doble clic en la tira vacía maximiza la ventana y un clic derecho muestra el menú del sistema
  • En WPF y Avalonia, la propiedad adjunta Tabs de la ventana lo configura desde XAML
  • Solo registrada separación: TearOffMode mueve una pestaña separada a la ventana que hay bajo el puntero, y ttmNewForm la abre en una ventana nueva desde OnCreateTearOffForm, que sigue al puntero

El formulario con pestañas está en todas las ediciones, Community incluida. La separación está en la edición registrada, igual que la separación de las pestañas. El marco con tema necesita Windows con composición de escritorio y, en FireMonkey, se aplica solo en Windows: en macOS, Linux, iOS y Android se mantiene la barra de título nativa.

Leer el tema de la ayuda Marco de la ventana Formulario con pestañas en .NET

Gestor de acoplamiento

Un espacio de trabajo al estilo de un IDE: paneles de herramientas acoplados en todos los lados, con ocultación automática o flotantes, un área de documentos con pestañas en el centro y un diseño guardado como JSON.

Sitio de acoplamiento con Explorer y Search en pestañas a la izquierda, una franja con el Toolbox en ocultación automática, cuatro pestañas de documentos, Properties a la derecha y Output abajo, con las guías de colocación y el rectángulo de vista previa en la mitad derecha de los documentos mientras se arrastra Output

Gestor de acoplamiento Solo registrada

Arrastra los paneles a las guías de colocación

Las aplicaciones con muchas ventanas de herramientas necesitan un espacio de trabajo que el usuario pueda organizar. TsgcVCLDockManager, TsgcFMXDockManager, TsgcWinFormsDockManager, TsgcWpfDockManager y TsgcAvaloniaDockManager acoplan los paneles de herramientas en los cuatro lados del formulario, en divisiones anidadas con divisores y en grupos con pestañas. El usuario arrastra un título o una pestaña, y las guías de colocación muestran dónde puede soltarse: una brújula sobre el grupo bajo el puntero divide ese grupo por un lado o añade el panel como pestaña, las guías de borde lo acoplan en un borde de todo el sitio, y un rectángulo de vista previa con el color de acento muestra el espacio que ocupará. Esc cancela el arrastre. La página Acoplamiento en Avalonia muestra TsgcAvaloniaDockManager en XAML y C#.

  • Panels.Add con Name, Caption, Placement y DockSize, y tu propio control como Control
  • DockPanel, ClosePanel, ShowPanel y ActivatePanel en código
  • OnPanelDock puede rechazar un cambio de acoplamiento, de flotante o de ocultación automática
  • Botones de cerrar, fijar, maximizar y menú en cada título
Leer el tema de la ayuda Arrastrar y soltar

Gestor de acoplamiento Solo registrada

Oculta automáticamente los paneles en las franjas laterales

Los paneles de herramientas que solo se necesitan de vez en cuando no deberían ocupar espacio todo el tiempo. El botón de chincheta de un título oculta automáticamente su grupo: los paneles pasan a ser pestañas en una franja fina al lado del formulario, y al pasar el puntero por una pestaña o hacer clic en ella el panel se desliza sobre el contenido. Vuelve a deslizarse hacia atrás cuando el usuario trabaja en otro sitio, y el botón de chincheta del flyout acopla de nuevo el grupo, en el lado y con el tamaño que tenía. En iOS y Android un toque abre el flyout.

  • Model.SetAutoHide(aPanel, True) en código
  • AutoHideDelay fija el retardo del puntero, 400 ms por defecto
  • CanAutoHide por panel, los documentos nunca se ocultan automáticamente
  • Alt+F7 y la paleta de comandos abren el flyout de un panel con ocultación automática
Leer el tema de la ayuda

Gestor de acoplamiento Solo registrada

Ventanas flotantes en el escritorio

Un panel soltado lejos de las guías flota en una ventana propia, que el usuario puede llevar a otro lugar u otro monitor. Una ventana flotante contiene un diseño como el sitio de acoplamiento, de modo que se pueden acoplar más paneles en ella, uno junto a otro o como pestañas, y un doble clic en su título la acopla de nuevo. Las ventanas flotantes son ventanas de herramientas sin borde, propiedad del formulario y fuera de la barra de tareas, con un título dibujado y un borde que permite redimensionarlas, y cada una usa la escala de su propio monitor. Funcionan en las aplicaciones de escritorio VCL, WinForms, WPF y Avalonia y en FireMonkey en Windows y macOS. En iOS y Android los paneles no flotan, y un arrastre solo muestra las guías.

  • FloatPanel(aPanel, aLeft, aTop) en código
  • AllowFloating en el gestor de acoplamiento y CanFloat por panel
  • Placement := dplFloat inicia un panel flotante de FloatWidth por FloatHeight
  • Una ventana flotante fuera del área de trabajo visible vuelve a ella al cargar un diseño
Leer el tema de la ayuda

Gestor de acoplamiento Solo registrada

Un área de documentos con pestañas en el centro

El centro del sitio de acoplamiento contiene los documentos: uno o más grupos de documentos, cada uno con una barra de pestañas arriba. La barra funciona como las pestañas de navegación, con reordenación arrastrando, documentos fijados primero, botones de cerrar, un punto de modificado, cierre con clic central, Ctrl+Tab y la lista de todas las pestañas. Arrastra la pestaña de un documento a un brazo lateral de la brújula para dividir el área en dos grupos de documentos, uno junto a otro o apilados, sepárala para hacerla flotar, o haz doble clic en ella para maximizar su grupo. El botón de nueva pestaña dispara OnNewDocument, donde tu código crea el siguiente documento.

  • Kind := dpkDocument, con Pinned y Modified por panel
  • DocumentTabSizing, DocumentCloseButtons, DocumentShowNewButton y DocumentShowListButton
  • Ctrl+F6 recorre los documentos, OnActiveDocumentChange informa del activo
  • OnPanelClose puede mantener abierto un documento
Leer el tema de la ayuda

Gestor de acoplamiento Solo registrada

Guarda el diseño y restáuralo

Los usuarios esperan encontrar sus paneles donde los dejaron. SaveLayout escribe toda la organización como JSON compacto: las divisiones y sus tamaños, los grupos y sus paneles activos, los grupos con ocultación automática de cada lado, las ventanas flotantes con sus límites, el grupo maximizado y los paneles ocultos. LoadLayout la restaura en el siguiente inicio. El texto es el mismo en Delphi y .NET, así que un solo archivo de diseño sirve para ambos. Un panel que el diseño nombra pero que el formulario aún no tiene, como un documento que estaba abierto, llega a OnRestorePanel, donde tu código crea su contenido o lo descarta.

  • SaveLayout, SaveLayoutToFile y SaveLayoutToStream
  • LoadLayout, LoadLayoutFromFile y LoadLayoutFromStream devuelven False ante un texto ajeno y no cambian nada
  • OnRestorePanel para los paneles creados en tiempo de ejecución
  • Un comando "Window" por panel convierte la paleta de comandos en un conmutador de ventanas

Edición Registrada en FireMonkey, VCL, WinForms, WPF y Avalonia, con compatibilidad con C++ Builder. Teclado, UI Automation, de derecha a izquierda, temas y alta resolución DPI incluidos.

Leer el tema de la ayuda

Elementos que informan

Las filas llevan más que un título: un icono, un contador y un enlace a la lógica que ya escribiste.

Insignias para contadores de no leídos

Elementos que informan

Insignias para contadores de no leídos

Los usuarios deben ver que algo requiere atención antes de abrir la página. Dale a un elemento un Badge, como un contador de no leídos o la palabra Nuevo, y la barra lo dibuja como una píldora del color de acento a la derecha de la fila, con texto negro o blanco, el que se lea mejor. Establécelo desde código cada vez que cambie el valor y la barra se repinta sola. En el riel contraído la insignia se convierte en un punto sobre el icono. Como la insignia es texto simple, la misma propiedad cubre contadores, etiquetas cortas y palabras de estado sin ningún código de dibujo propio.

  • Badge es un texto corto por elemento
  • Un Badge vacío no dibuja nada
  • La píldora usa el acento del tema o tu AccentColor
  • Combínalo con Hint para explicar el contador
Leer el tema de la ayuda
Iconos de tu lista de imágenes o un glifo

Elementos que informan

Iconos de tu lista de imágenes o un glifo

Cada fila tiene una ranura de icono. Apunta la barra a la lista de imágenes que ya usas y establece ImageIndex en cada elemento, y las imágenes con máscara o de 32 bits se convierten una vez y se guardan en caché hasta que la lista cambia. ¿Aún no tienes lista de imágenes? Establece un Glyph, una letra o un símbolo corto que sigue los colores del tema, que es el aspecto de las demos. Un elemento deshabilitado pinta su imagen al 40 por ciento de opacidad, así que el estado se ve de un vistazo. Mezclar ambos es válido: los elementos con índice de imagen muestran la imagen y los demás usan su glifo, de modo que puedes añadir iconos poco a poco.

  • Images e ImageIndex para listas de imágenes
  • Glyph para una letra o un símbolo sin imágenes
  • VCL dibuja las imágenes a su propio tamaño
  • Listas de imágenes de FireMonkey desde Delphi XE8
Leer el tema de la ayuda

Elementos que informan Solo registrada

Conecta los elementos a tus TAction

Las aplicaciones construidas sobre un TActionList ya tienen sus comandos, títulos y reglas de habilitación en un solo lugar. Enlaza un elemento a cualquier TAction de VCL o FireMonkey mediante su propiedad Action y su Caption, Enabled, Visible, Hint e ImageIndex siguen a la acción. Un clic ejecuta la acción con la barra como su ActionComponent, y OnUpdate se ejecuta en reposo, de modo que un elemento se pone gris en cuanto su acción se deshabilita. En .NET el mismo trabajo lo hacen Command y CommandParameter. Un solo TActionList puede gobernar el menú, la barra de herramientas y los atajos de teclado del formulario.

  • Action enlaza un elemento a cualquier TBasicAction
  • El OnClick de un elemento se ejecuta en lugar de la acción
  • Se compila bajo SGC_NAVIGATION_ACTIONS
  • .NET: Command y CommandParameter con ICommand

Community: asigna el OnClick del elemento o el OnItemClick de la barra en lugar de una acción.

Leer el tema de la ayuda

Teclado, temas y salida

Los detalles que hacen que la barra se sienta nativa y coherente con el resto de tu aplicación.

Navegación pensada para el teclado

Teclado, temas y salida

Los usuarios avanzados cambian de página sin ratón, y las revisiones de accesibilidad lo esperan. La barra recibe el foco con Tab y mueve una fila enfocada sobre los elementos visibles y habilitados: Arriba y Abajo avanzan, Inicio y Fin saltan, Intro o Espacio activan. En el acordeón, Izquierda contrae un grupo y Derecha lo expande. El rectángulo de foco punteado solo aparece mientras se usa el teclado, y el foco queda separado de la página seleccionada. Las mismas teclas funcionan en la barra FireMonkey mediante CanFocus, así que los usuarios de escritorio obtienen el mismo comportamiento en todas las plataformas.

  • TabStop está activado por defecto en la barra VCL
  • FocusedIndex del modelo es la fila del teclado
  • SelectedIndex sigue siendo la página elegida
  • Las sugerencias muestran el título en el riel contraído
Leer el tema de la ayuda
Claro, oscuro y tu color de acento

Teclado, temas y salida

Claro, oscuro y tu color de acento

Un menú que ignora el tema de la aplicación parece añadido a la fuerza. Theme fija los colores de superficie, borde, texto, encabezado de grupo, hover y acento a partir de los tokens compartidos de sgcUICore, así que una barra y un sgcDashboard con el mismo Theme coinciden exactamente. AccentColor sustituye el acento por el color de tu marca en la barra de selección, el rectángulo de foco y las insignias. Una barra alojada en una tarjeta de dashboard sigue sola el tema del dashboard. Cambia el tema en tiempo de ejecución y la barra se repinta al instante, lista para un interruptor de modo oscuro en tu página de ajustes.

  • Theme: utDefault (predeterminado, sigue el tema de la aplicación), utLight o utDark
  • AccentColor como valor $AARRGGBB, 0 mantiene el acento del tema
  • Los mismos tokens que todos los productos sgcUI
  • Las tarjetas del dashboard transmiten su tema a la barra
Leer el tema de la ayuda
Renderiza la barra sin ventana

Teclado, temas y salida

Renderiza la barra sin ventana

La documentación, las pruebas visuales y los back ends web a veces necesitan una imagen del menú, no el menú en sí. El renderizador de sgcNavigation_Render pinta un TsgcNavigationModel sin ventana y sin VCL ni FireMonkey, así que un programa de consola, un servicio o un servidor produce la misma barra como PNG o SVG. La unidad compila en todas las plataformas, Linux64 incluido, y un parámetro de escala da imágenes nítidas para pantallas de alta densidad. Pasa tu lista de imágenes al renderizador y la imagen exportada muestra los mismos iconos que la aplicación en ejecución.

  • sgcNavigationSaveToPNG escribe un archivo o flujo PNG
  • sgcNavigationSaveToSVG escribe la misma barra como SVG
  • sgcNavigationRender pinta sobre cualquier lienzo de sgcUICore
  • Ancho y alto en píxeles lógicos, por la escala
Leer el tema de la ayuda

Mira sgcNavigation en acción

sgcNavigation dentro de las demos de la suite sgcUI: aplicaciones completas que funcionan sin conexión con datos simulados integrados.

Quién construye con sgcNavigation

Una estructura moderna para aplicaciones ERP y de administración

Tienes decenas de formularios y una ventana principal que aún los abre desde una barra de menús. Pon una barra lateral a la izquierda, un elemento por área, y deja que OnSelectionChange cambie las pestañas de un TPageControl con pestañas ocultas. Las insignias muestran pedidos pendientes o mensajes sin leer, y el riel de iconos devuelve el espacio a los formularios. Ejecuta SidebarApp para ver el patrón funcionando con una página de sgcDashboard.

  • Modo barra lateral
  • Insignias
  • Contracción a riel de iconos
Ejecuta la demo SidebarApp

Ajustes y consolas de administración

Las pantallas de configuración agrupan decenas de páginas bajo unos pocos encabezados como Sales, Inventory y Admin. El acordeón mantiene abierta una sección a la vez, o varias con AllowMultiExpand, y los enlaces de acción reutilizan los comandos y las reglas de habilitación de tu TActionList. Los usuarios de teclado se mueven por las secciones con las teclas de flecha. La demo Accordion muestra tres grupos, un interruptor de expansión y un registro de clics.

  • Modo acordeón
  • Enlaces de acción
  • Navegación con teclado
Ejecuta la demo Accordion

La misma navegación en todas las plataformas

Una aplicación FireMonkey que se ejecuta en Windows, macOS, iOS y Android no debería necesitar un menú distinto en cada una. TsgcFMXNavigationBar tiene los mismos elementos, modos y eventos que la barra VCL, y las barras .NET para WinForms, WPF y Avalonia siguen los mismos nombres. Los equipos que entregan una aplicación de escritorio en Delphi y una herramienta .NET mantienen un único modelo mental. SidebarFMX es la versión FireMonkey de la demo de barra lateral.

  • Barra FireMonkey
  • Temas
  • Barras .NET
Ejecuta la demo SidebarFMX

Una barra de navegación en pocas líneas

La misma API en FireMonkey, C#, Delphi VCL y C++ Builder: una barra de acordeón con grupos, una insignia, un elemento deshabilitado y un botón Collapse. Las pestañas de FireMonkey y C# añaden una tira de pestañas y una paleta de comandos.

uses
  FMX.Types, FMX.Controls, FMX.Forms, FMX.StdCtrls,
  sgcUICore_Theme, sgcNavigation_Model, sgcNavigation_FMX;

procedure TMainForm.CreateNavigation;
begin
  // an accordion bar on the left, dark theme, several groups open at once
  FNav := TsgcFMXNavigationBar.Create(Self);
  FNav.Parent := Self;
  FNav.Align := TAlignLayout.Left;
  FNav.Mode := nbmAccordion;
  FNav.AllowMultiExpand := True;
  FNav.Theme := utDark;
  // a group header (third parameter True), then the items under it
  FNav.Items.AddItem('Sales', '', True);
  FNav.Items.AddItem('Orders', 'O');
  FNav.Items.AddItem('Invoices', 'I').Badge := '3';
  FNav.Items.AddItem('Admin', '', True);
  FNav.Items.AddItem('Users', 'U').Hint := 'Manage the users';
  FNav.Items.AddItem('Billing', 'B').Enabled := False;
  FNav.SelectedIndex := 1;
  FNav.OnItemClick := NavItemClick;
  FNav.OnSelectionChange := NavSelectionChange;
  // a Collapse button folds the bar into an icon rail with an animation
  FNav.AnimateCollapse := True;
  FButton.Text := 'Collapse';
  FButton.OnClick := ButtonClick;
end;

procedure TMainForm.NavItemClick(Sender: TObject; aItem: TsgcNavigationItem);
begin
  Caption := 'Clicked: ' + aItem.Caption;
end;

procedure TMainForm.NavSelectionChange(Sender: TObject);
begin
  FPage.Text := FNav.Items[FNav.SelectedIndex].Caption + ' page';
end;

procedure TMainForm.ButtonClick(Sender: TObject);
begin
  FNav.Collapsed := not FNav.Collapsed;
end;
uses
  FMX.Types, FMX.Controls,
  sgcNavigation_Tabs, sgcNavigation_Tabs_FMX,
  sgcNavigation_Palette, sgcNavigation_Palette_FMX;

procedure TMainForm.CreateShell;
var
  oTab: TsgcNavigationTab;
  oCommand: TsgcCommandPaletteCommand;
begin
  // a tab strip on top: every tab shows its own page
  FTabs := TsgcFMXNavigationTabs.Create(Self);
  FTabs.Parent := FContent;
  FTabs.Align := TAlignLayout.Top;
  oTab := FTabs.Tabs.AddTab('Orders');
  oTab.Control := FOrdersPage;
  FTabs.ActiveIndex := oTab.Index;
  // the command palette (Registered edition), Ctrl+Shift+P opens it
  FPalette := TsgcFMXCommandPalette.Create(Self);
  oCommand := FPalette.Commands.AddCommand('Toggle sidebar', 'View', 'Ctrl+B');
  oCommand.OnExecute := ButtonClick;
  // every item of the bar becomes a "Go to" command
  FPalette.Sources.AddSource(FNav);
end;
procedure TMainForm.CreateNavigation;
var
  oItem: TsgcNavigationItem;
begin
  // an accordion bar on the left, dark theme, several groups open at once
  FNav := TsgcVCLNavigationBar.Create(Self);
  FNav.Parent := Self;
  FNav.Align := alLeft;
  FNav.Mode := nbmAccordion;
  FNav.AllowMultiExpand := True;
  FNav.Theme := utDark;
  // a group header (third parameter True), then the items under it
  FNav.Items.AddItem('Sales', '', True);
  FNav.Items.AddItem('Orders', 'O');
  FNav.Items.AddItem('Invoices', 'I').Badge := '3';
  FNav.Items.AddItem('Admin', '', True);
  oItem := FNav.Items.AddItem('Users', 'U');
  oItem.Hint := 'Manage the users';
  oItem := FNav.Items.AddItem('Billing', 'B');
  oItem.Enabled := False;
  FNav.SelectedIndex := 1;
  FNav.OnItemClick := NavItemClick;
  FNav.OnSelectionChange := NavSelectionChange;
  // a Collapse button folds the bar into an icon rail with an animation
  FNav.AnimateCollapse := True;
  FButton.Caption := 'Collapse';
  FButton.OnClick := ButtonClick;
end;

procedure TMainForm.NavItemClick(Sender: TObject; aItem: TsgcNavigationItem);
begin
  Caption := 'Clicked: ' + aItem.Caption;
end;

procedure TMainForm.NavSelectionChange(Sender: TObject);
begin
  FPanel.Caption := FNav.Items[FNav.SelectedIndex].Caption + ' page';
end;

procedure TMainForm.ButtonClick(Sender: TObject);
begin
  FNav.Collapsed := not FNav.Collapsed;
end;

Una ventana al estilo de un navegador: TsgcVCLNavigationTabbedForm mueve la tira de pestañas a una barra de título con tema.

uses
  Classes, Controls, Forms,
  sgcNavigation_Tabs, sgcNavigation_Tabs_VCL, sgcNavigation_TabbedForm_VCL;

procedure TMainForm.CreateTabbedForm;
begin
  // a browser style strip with close buttons and a new tab button
  FTabs := TsgcVCLNavigationTabs.Create(Self);
  FTabs.Parent := Self;
  FTabs.ShowNewButton := True;
  FTabs.CloseButtons := tcbAlways;
  FTabs.Tabs.AddTab('Home');
  FTabs.Tabs.AddTab('Orders');
  FTabs.ActiveIndex := 0;
  // the window frame: the strip moves into the themed title bar
  FTabbedForm := TsgcVCLNavigationTabbedForm.Create(Self);
  FTabbedForm.Tabs := FTabs;
  // Registered edition: a tab dropped on another tabbed window moves there
  FTabbedForm.TearOffMode := ttmEvent;
end;
#include <vcl.h>
#include <Vcl.ExtCtrls.hpp>
#include "sgcUICore_Theme.hpp"
#include "sgcNavigation_Model.hpp"
#include "sgcNavigation_VCL.hpp"

class TNavHandler : public TObject
{
public:
  TsgcVCLNavigationBar *Nav;
  TPanel *Content;
  void __fastcall ItemClick(TObject *Sender, TsgcNavigationItem *aItem);
  void __fastcall SelectionChange(TObject *Sender);
  void __fastcall CollapseClick(TObject *Sender);
};

void __fastcall TNavHandler::ItemClick(TObject *Sender, TsgcNavigationItem *aItem)
{
  Content->Caption = "Clicked: " + aItem->Caption;
}

void __fastcall TNavHandler::SelectionChange(TObject *Sender)
{
  Content->Caption = Nav->Items->Items[Nav->SelectedIndex]->Caption + " page";
}

void __fastcall TNavHandler::CollapseClick(TObject *Sender)
{
  Nav->Collapsed = !Nav->Collapsed;   // animated fold into an icon rail
}

void __fastcall CreateNavigation(TForm *Form, TNavHandler *Handler)
{
  // an accordion bar on the left, dark theme, several groups open at once
  TsgcVCLNavigationBar *Nav = new TsgcVCLNavigationBar(Form);
  Nav->Parent = Form;
  Nav->Align = alLeft;
  Nav->Mode = nbmAccordion;
  Nav->AllowMultiExpand = true;
  Nav->AnimateCollapse = true;
  Nav->Theme = utDark;
  // a group header (third parameter true), then the items under it
  Nav->Items->AddItem("Sales", "", true);
  Nav->Items->AddItem("Orders", "O", false);
  Nav->Items->AddItem("Invoices", "I", false)->Badge = "3";
  Nav->Items->AddItem("Admin", "", true);
  Nav->Items->AddItem("Users", "U", false)->Hint = "Manage the users";
  Nav->Items->AddItem("Billing", "B", false)->Enabled = false;
  Nav->SelectedIndex = 1;
  TPanel *Content = new TPanel(Form);
  Content->Parent = Form;
  Content->Align = alClient;
  Handler->Nav = Nav;
  Handler->Content = Content;
  Nav->OnItemClick = Handler->ItemClick;
  Nav->OnSelectionChange = Handler->SelectionChange;
  TButton *Button = new TButton(Form);
  Button->Parent = Content;
  Button->Caption = "Collapse";
  Button->OnClick = Handler->CollapseClick;
}
using System;
using System.Windows.Forms;
using esegece.sgcUICore;
using esegece.sgcNavigation;

internal class MainForm : Form
{
    private readonly TsgcWinFormsNavigationBar Nav = new TsgcWinFormsNavigationBar();
    private readonly Label lblPage = new Label { Dock = DockStyle.Fill };
    private readonly Button btnCollapse = new Button { Text = "Collapse", Dock = DockStyle.Top };

    public MainForm()
    {
        // an accordion bar on the left, dark theme, several groups open at once
        Nav.Dock = DockStyle.Left;
        Nav.Mode = TsgcNavigationMode.nbmAccordion;
        Nav.AllowMultiExpand = true;
        Nav.AnimateCollapse = true;
        Nav.Theme = TsgcUITheme.utDark;
        // a group header (third parameter true), then the items under it
        Nav.Items.AddItem("Sales", "", true);
        Nav.Items.AddItem("Orders", "O");
        Nav.Items.AddItem("Invoices", "I").Badge = "3";
        Nav.Items.AddItem("Admin", "", true);
        Nav.Items.AddItem("Users", "U").Hint = "Manage the users";
        Nav.Items.AddItem("Billing", "B").Enabled = false;
        Nav.SelectedIndex = 1;
        Nav.OnItemClick = (sender, item) => Text = "Clicked: " + item.Caption;
        Nav.OnSelectionChange = sender => lblPage.Text = Nav.Items[Nav.SelectedIndex].Caption + " page";
        // the Collapse button folds the bar into an icon rail with an animation
        btnCollapse.Click += (s, e) => Nav.Collapsed = !Nav.Collapsed;
        Controls.Add(lblPage);
        Controls.Add(btnCollapse);
        Controls.Add(Nav);
    }
}
// tabs and a command palette on the same form
private readonly TsgcWinFormsNavigationTabs Tabs = new TsgcWinFormsNavigationTabs();
private readonly TsgcWinFormsCommandPalette Palette = new TsgcWinFormsCommandPalette();

private void CreateShell(Control aOrdersPage)
{
    // a tab strip on top: every tab shows its own page
    Tabs.Dock = DockStyle.Top;
    TsgcNavigationTab oTab = Tabs.Tabs.AddTab("Orders");
    oTab.Control = aOrdersPage;
    Tabs.ActiveIndex = oTab.Index;
    Controls.Add(Tabs);
    // the command palette (Registered edition), Ctrl+Shift+P on this form opens it
    Palette.OwnerForm = this;
    TsgcCommandPaletteCommand oCommand = Palette.Commands.AddCommand("Toggle sidebar", "View", "Ctrl+B");
    oCommand.OnExecute = sender => Nav.Collapsed = !Nav.Collapsed;
    // every item of the bar becomes a "Go to" command
    Palette.Sources.AddSource(Nav);
}
dotnet add package esegece.sgcNavigation.WinForms

Ejecuta las demos de sgcNavigation

Las demos NavigationShell y DockingShell se incluyen para FireMonkey, VCL, WinForms, WPF y Avalonia. La demo de barra lateral se incluye para FireMonkey, y las demos SidebarApp y Accordion se incluyen en la edición .NET como proyectos WinForms, WPF y Avalonia y para Delphi VCL y C++ Builder.

NavigationShellFMX

Solo registrada NavigationShellFMX

Una estructura de navegación completa para FireMonkey, solo para Delphi: un árbol con una fila de búsqueda a la izquierda, una pestaña por cada página abierta, una ruta de navegación que sigue al árbol y una paleta de comandos (Ctrl+Shift+P) que lista los elementos de la barra y una lista de acciones. Incluye interruptores de tema oscuro y de derecha a izquierda. Usa la paleta, así que necesita la edición Registrada o de prueba.

Solo registrada NavigationShell

La misma estructura para la VCL, con una pequeña cinta arriba cuyos comandos también aparecen en la paleta de comandos con su ruta 'Tab > Group', junto a los elementos del árbol y las acciones de una lista de acciones. Incluye interruptores de tema oscuro y de derecha a izquierda.

Solo registrada NavigationShell para .NET

La estructura de navegación en la edición .NET: NavigationShell para WinForms, NavigationShellWpf y NavigationShellAvalonia, cada una con el árbol y la búsqueda, las pestañas, la ruta de navegación y la paleta de comandos.

DockingShell

Solo registrada DockingShell y DockingShellFMX

Una estructura al estilo de un IDE creada sobre el gestor de acoplamiento, para la VCL y para FireMonkey: un árbol de barra de navegación como Explorer a la izquierda, Properties a la derecha, Output con ocultación automática abajo y documentos de memo con pestañas fijadas y modificadas en el centro. La paleta de comandos lista un comando Window por panel, incluye un selector de tema y un botón Reset layout, y el diseño se guarda en JSON al cerrar y se carga en el siguiente inicio.

Solo registrada DockingShell para .NET

La estructura con acoplamiento en la edición .NET: DockingShell para WinForms, DockingShellWpf y DockingShellAvalonia, cada una con paneles acoplados, con ocultación automática y flotantes, el área de documentos y el diseño guardado.

TabbedForm y TabbedFormFMX

Una ventana al estilo de un navegador con las pestañas en la barra de título, para la VCL y para FireMonkey, con gemelas para C++ Builder: un botón de nueva pestaña, botones de cierre y un selector de tema con claro, oscuro, Fluent claro y Fluent oscuro. Arrastra una pestaña fuera de la tira y se abre en una ventana nueva que sigue al puntero. Luego suéltala en la barra de título de otra ventana. La separación requiere la edición registrada. En la edición .NET se incluye como TabbedForm para WinForms, TabbedFormWpf y TabbedFormAvalonia.

SidebarFMX

La demo de barra lateral creada con TsgcFMXNavigationBar para FireMonkey, solo para Delphi. Los mismos elementos, modos y eventos que la versión VCL, lista para Windows, macOS y destinos móviles.

SidebarApp

SidebarApp

Una barra lateral que gobierna un control de páginas con pestañas ocultas, con iconos, una insignia, un elemento deshabilitado, un botón Collapse, un combo de temas y una página KPI de sgcDashboard. Demuestra el patrón de estructura de aplicación de principio a fin.

Accordion

Solo registrada Accordion

Tres grupos, Sales, Inventory y Admin, un interruptor AllowMultiExpand, enlaces de acción y un registro de clics. Usa enlaces de acción, así que necesita la edición Registrada o de prueba.

Demos compiladas

Ejecutables listos para usar de cada producto sgcUI, sin nada que instalar.

Descargar sgcUI_bin.zip →

Guía Getting Started

Cinco demos QuickStart para Delphi (VCL) se incluyen en Demos\Navigation\Delphi\00.QuickStart. La guía en PDF las recorre paso a paso: una primera barra de navegación, un menú construido desde código, pestañas de documentos, temas y estilos, y un pequeño cliente de correo.

Descargar la guía (PDF, en inglés) →

¿sgcNavigation o los controles VCL de RAD Studio 13.2?

RAD Studio 13.2 Florence añadió dos controles VCL, TNavigationView y TTabView. Si tu aplicación es solo VCL y compilas con la 13.2 o posterior, son una buena opción integrada. sgcNavigation aporta valor cuando la misma navegación debe funcionar en FireMonkey y .NET, cuando compilas con versiones antiguas de Delphi y cuando necesitas una ruta de navegación, una paleta de comandos o un árbol con búsqueda.

TNavigationView es una lista vertical de elementos con modos normal y compacto, imágenes, texto en varias líneas, desplazamiento y reordenación arrastrando, y enlaza sus elementos a un control multipágina, un marco o un TCardPanel. TTabView es una variante moderna de TTabSet cuyas pestañas alojan formularios u otros controles, con una imagen, texto en varias líneas y un botón de cierre en cada pestaña, un botón para añadir una pestaña, una lista desplegable de todas las pestañas y botones de desplazamiento. Ambos están bien diseñados y siguen el modelo de programación de la VCL, así que para un proyecto VCL nuevo en la 13.2 merece la pena probarlos.

sgcNavigation mantiene un solo modelo independiente del marco y un solo renderizador sin ventana detrás de cada host. La barra, y las pestañas, la ruta de navegación, el árbol de varios niveles y la paleta de comandos que se unen a ella en esta versión, se comportan igual en FireMonkey, WinForms, WPF, Avalonia y la VCL de Delphi 7 a 13, así que un producto con un front end de escritorio, uno móvil y uno .NET navega igual en todas partes.

TemasgcNavigationTNavigationView y TTabView (VCL, RAD Studio 13.2)
FrameworksFireMonkey, WinForms, WPF, Avalonia y VCLVCL
Versiones de Delphi y C++ BuilderDelphi 7 a 13 (VCL), Delphi XE6 a 13 (FireMonkey), C++ Builder 2007 a 13RAD Studio 13.2 y posteriores
Hosts .NETWinForms, WPF y Avalonia en .NET Framework 4.7.2, .NET 8, 9 y 10No aplicable, son controles VCL
Renderizado sin ventana en LinuxSalida PNG y SVG en Linux64 desde Delphi 10.2No se describe en la documentación de la 13.2
Modelo compartido entre marcosUn modelo independiente del marco, con los mismos nombres en Delphi y .NETNo se describe en la documentación de la 13.2
Ruta de navegaciónBarra de ruta de navegación que puede seguir al nodo seleccionado de la barraNo se describe en la documentación de la 13.2
Paleta de comandosPaleta de teclado con búsqueda aproximada sobre comandos, elementos y accionesNo se describe en la documentación de la 13.2
Búsqueda en el árbolÁrbol de varios niveles con una fila de búsqueda que mantiene visibles los padres de cada coincidenciaNo se describe en la documentación de la 13.2

Los detalles de TNavigationView y TTabView proceden de las notas de RAD Studio 13 Florence Release 2 de Embarcadero.

Dónde se incluye sgcNavigation

sgcNavigation está en todas las ediciones de sgcUI, empezando por Standard, y también se vende por separado. sgcNavigation también se incluye en el paquete All-Access.

Paquete individual de sgcNavigation

€149 / desarrollador, código fuente completo, 1 año de actualizaciones.

Comprar sgcNavigation → Ver precios →

sgcUI Standard

sgcNavigation, sgcGrid, sgcToolbar y sgcEditors, desde €380.

Ver Standard →

sgcUI Professional

Standard más sgcCharts, sgcDashboard y sgcGauges, desde €529.

Ver Professional →

sgcUI Enterprise

Los 17 productos sgcUI, desde €699.

Ver Enterprise →

La edición Community gratuita (esegece.sgcNavigation.Community en NuGet) incluye la barra con modo árbol y búsqueda, las pestañas y la ruta de navegación básicas, el formulario con pestañas en la barra de título y la interfaz de orígenes de comandos. La edición Registrada añade la paleta de comandos, la reordenación de pestañas, las pestañas fijadas, la separación y la disposición guardada de pestañas, el modo de edición de la ruta de navegación, el gestor de acoplamiento y los enlaces de acción de los elementos.

FunciónCommunity (gratuita)Registrada
Modos barra lateral y acordeón✓✓
Contracción a un riel de iconos animado✓✓
Iconos, glifos e insignias✓✓
Navegación con teclado✓✓
Temas claro y oscuro, color de acento✓✓
Salida PNG y SVG sin ventana✓✓
Modo árbol de varios niveles y búsqueda✓✓
Pestañas: tamaño, botones de cierre, botones de lista y de nueva pestaña, desplazamiento, teclado✓✓
Formulario con pestañas: las pestañas en una barra de título con tema✓✓
Ruta de navegación: segmentos, chevrones, desbordamiento, enlace a una barra✓✓
Orígenes de comandos (IsgcUICommandSource)✓✓
Paleta de comandos−✓
Reordenar pestañas arrastrando, pestañas fijadas, separación, disposición guardada de pestañas−✓
Separación del formulario con pestañas en una ventana nueva−✓
Modo de edición de la ruta de navegación−✓
Gestor de acoplamiento−✓
Enlaces de acción (Delphi) y Command (.NET)−✓

Frameworks y plataformas compatibles

Componentes de sgcNavigation

ComponenteDestino
TsgcFMXNavigationBarDelphi y C++ Builder, FireMonkey (sgcNavigation_FMX)
TsgcWinFormsNavigationBar.NET, WinForms
TsgcWpfNavigationBar.NET, WPF
TsgcAvaloniaNavigationBar.NET, Avalonia
TsgcVCLNavigationBarDelphi y C++ Builder, VCL (sgcNavigation_VCL)
TsgcFMXNavigationTabs, TsgcFMXNavigationBreadcrumb, TsgcFMXCommandPaletteDelphi y C++ Builder, FireMonkey (sgcNavigation_Tabs_FMX, sgcNavigation_Palette_FMX)
TsgcWinFormsNavigationTabs, TsgcWpfNavigationTabs, TsgcAvaloniaNavigationTabs.NET, WinForms, WPF y Avalonia, con las clases Breadcrumb y CommandPalette correspondientes
TsgcVCLNavigationTabs, TsgcVCLNavigationBreadcrumb, TsgcVCLCommandPaletteDelphi y C++ Builder, VCL (sgcNavigation_Tabs_VCL, sgcNavigation_Palette_VCL)
TsgcVCLNavigationTabbedForm, TsgcFMXNavigationTabbedFormDelphi y C++ Builder, VCL y FireMonkey (sgcNavigation_TabbedForm_VCL, sgcNavigation_TabbedForm_FMX), la barra de título con tema en Windows
TsgcWinFormsNavigationTabbedForm, TsgcWpfNavigationTabbedWindow, TsgcAvaloniaNavigationTabbedWindow.NET, WinForms, WPF y Avalonia
TsgcVCLDockManager, TsgcFMXDockManagerDelphi y C++ Builder, VCL y FireMonkey (sgcNavigation_Dock_VCL, sgcNavigation_Dock_FMX), edición Registrada
TsgcWinFormsDockManager, TsgcWpfDockManager, TsgcAvaloniaDockManager.NET, WinForms, WPF y Avalonia, edición Registrada
TsgcNavigationItem, TsgcNavigationItems, TsgcNavigationModelModelo independiente del marco (sgcNavigation_Model)
DestinoComponentePlataformas
Delphi XE6 a 13, FireMonkeyTsgcFMXNavigationBarWindows, macOS, iOS, Android y Linux (FMXLinux)
.NET Framework 4.7.2, .NET 8, 9 y 10TsgcWinFormsNavigationBar, barras WPF y AvaloniaWinForms, WPF y Avalonia
Delphi 7 a 13, VCLTsgcVCLNavigationBarWin32 y Win64
C++ Builder 2007 a 13TsgcVCLNavigationBar, TsgcFMXNavigationBarCabeceras .hpp generadas y bibliotecas estáticas
Delphi 10.2 a 13, independiente del marcoModelo y renderizador PNG y SVG sin ventanaLinux64, por ejemplo para renderizar una barra en un servidor

Preguntas frecuentes

Si tu aplicación es solo VCL, TNavigationView y TTabView de RAD Studio 13.2 son una buena opción integrada y nos alegra recomendarlas. sgcNavigation es la mejor opción cuando la misma navegación también debe funcionar en FireMonkey en macOS, iOS, Android o Linux, o en una aplicación WinForms, WPF o Avalonia, cuando parte de tu equipo aún compila con un Delphi o C++ Builder anterior, o cuando quieres una ruta de navegación, una paleta de comandos o un árbol de varios niveles con búsqueda sobre la barra lateral. El modelo y el renderizador sin ventana PNG y SVG los comparten todos los hosts. Consulta Elegir para ver una tabla comparativa.

Sí, en la edición Registrada. TsgcFMXCommandPalette, TsgcVCLCommandPalette y las paletas de WinForms, WPF y Avalonia se abren con Ctrl+Shift+P, ordenan los comandos por coincidencia aproximada mientras el usuario escribe y muestran primero los comandos usados recientemente. Además de sus propios comandos, la paleta lista todos los orígenes de comandos que añadas: los elementos de una barra de navegación, los comandos de una cinta o de una barra de herramientas en Delphi, las acciones de una lista de acciones o un origen propio mediante la interfaz IsgcUICommandSource. En .NET un comando puede llevar un ICommand. Consulta la paleta de comandos.

Ambos. La propiedad Mode alterna entre nbmSidebar y nbmAccordion en el mismo control, con los mismos elementos y eventos, así que puedes cambiar de idea al final del proyecto u ofrecer ambos estilos como preferencia del usuario. Cada modo también se pliega al riel de iconos contraído.

Sí. Gestiona OnSelectionChange y muestra la página que corresponde a SelectedIndex, por ejemplo la pestaña de un TPageControl con las pestañas ocultas, o crea un marco bajo demanda. La demo SidebarApp está construida exactamente así y aloja una página KPI de sgcDashboard.

Sí. TsgcFMXNavigationBar apunta a Windows, macOS, iOS, Android y Linux (FMXLinux) desde Delphi XE6, con los mismos elementos, modos y eventos que la barra VCL. Las listas de imágenes de FireMonkey requieren Delphi XE8 o posterior; las versiones anteriores usan el Glyph de cada elemento.

La paleta de comandos, la reordenación de pestañas arrastrando, las pestañas fijadas y la separación, el modo de edición de la ruta de navegación, el gestor de acoplamiento y los enlaces de acción de los elementos, que en .NET son las propiedades Command y CommandParameter. Usa el OnClick del elemento o el OnItemClick de la barra en lugar de los enlaces de acción. Todas las demás funciones, incluidos el árbol con búsqueda, las pestañas, el riel de iconos, las insignias, los temas y la salida sin ventana, están en Community. Consulta Ediciones.

No. El port .NET no tiene verbos de diseñador ni editor de colecciones, así que los elementos no se serializan y se añaden desde código, normalmente en el constructor del formulario o de la ventana. En Delphi y C++ Builder la colección Items se edita en tiempo de diseño con el editor de colecciones estándar.

Sí. Todos los tamaños son píxeles lógicos multiplicados por la escala del monitor, así que las filas, los iconos y las insignias se ven nítidos con cualquier DPI. En WinForms los anchos y alturas se escalan con DPI / 96 como en VCL, y en WPF y Avalonia son unidades independientes del dispositivo.

Sí. sgcNavigationSaveToPNG y sgcNavigationSaveToSVG renderizan una barra a partir de su modelo sin ventana y sin VCL ni FireMonkey, también en Linux64 desde Delphi 10.2. Úsalo para documentación, pruebas de regresión visual o una página web que muestre el menú de tu aplicación.

No. En iOS y Android los paneles de TsgcFMXDockManager se acoplan, se dividen, forman pestañas y se ocultan automáticamente, pero no flotan: AllowFloating se fuerza a False, un toque abre un panel con ocultación automática porque no hay hover, una pulsación larga abre el menú del panel y un arrastre solo muestra las guías de colocación. Las ventanas flotantes funcionan en las aplicaciones de escritorio VCL, WinForms, WPF y Avalonia y en FireMonkey en Windows y macOS. Un diseño guardado en el escritorio sigue cargándose en un teléfono: los paneles de sus ventanas flotantes conservan su colocación inicial. Consulta Ventanas flotantes.

Ayuda de sgcNavigation

3,000+Desarrolladores
20+Años
761+Componentes
30+Integraciones de API
5Plataformas
Garantía de devolución de 30 días¿No estás satisfecho? Solicita un reembolso completo en los 30 días posteriores a la compra. Ver política de reembolso

Prueba sgcNavigation hoy

La prueba de sgcUI incluye sgcNavigation y todos los demás productos sgcUI.