Delphi, C++ Builder & .NET Parte de sgcUI

sgcToolbar, la barra de herramientas y la barra de estado para Delphi, C++ Builder & .NET

Construye el marco de una aplicación de escritorio con dos controles que se ven igual en cualquier interfaz. Una barra de herramientas con botones, interruptores, grupos de opciones y desplegables, y una barra de estado real con paneles de progreso e indicadores que un hilo de trabajo puede actualizar directamente.

VCL, FireMonkey, WinForms, WPF, AvaloniaActualizaciones de la barra de estado desde cualquier hiloEdición Community de .NET gratuitaIncluido en sgcUI Standard
Barra de herramientas de EditorShell al doble de tamaño con llamadas sobre un botón, un interruptor, un separador, un desplegable, una etiqueta y un espaciador

Una barra de comandos y de estado completa

Doce funciones para las dos barras que necesita toda aplicación de escritorio, desde grupos de opciones hasta el progreso en vivo de un hilo de trabajo.

Comandos

Todos los elementos que necesita una barra de comandos, con la agrupación, los menús y el desbordamiento resueltos por el control.

Todos los tipos de elemento de barra de herramientas en un solo control

Comandos

Todos los tipos de elemento de barra de herramientas en un solo control

Una barra de herramientas real mezcla botones simples, botones que se quedan pulsados, botones con menú, separadores y un poco de texto. Con sgcToolbar cada uno es un elemento de la misma colección, y Kind decide cómo se dibuja y cómo reacciona. Los elementos se colocan de izquierda a derecha con Spacing entre ellos, y un espaciador ocupa el ancho libre, así que puedes empujar Ayuda o un nombre de usuario al borde derecho sin código de diseño. Width fija un elemento cuando necesitas un tamaño estable. Las sugerencias, los estados deshabilitados y el resaltado al pasar el ratón se dibujan en todos los tipos.

  • tikButton, tikToggle y tikDropdown para comandos
  • tikSeparator dibuja una línea vertical fina
  • tikSpacer empuja los elementos siguientes a la derecha
  • tikLabel muestra texto dentro de la barra
Leer el tema de la ayuda
Grupos de opciones sin código

Comandos

Grupos de opciones sin código

La alineación del texto, los modos de vista y las herramientas de dibujo son la típica elección de una entre varias. Da a varios interruptores el mismo GroupIndex y forman un grupo de opciones: al poner Down en uno de ellos, con un clic o desde código, se sueltan los demás, y un clic en el que ya está pulsado lo deja pulsado, de modo que siempre queda una opción seleccionada. Un interruptor con GroupIndex 0 es un simple interruptor de activado y desactivado como Negrita o Ajuste de línea. El clic cambia Down antes de que se dispare OnItemClick, así que tu gestor lee el nuevo estado. No hace falta conectar eventos para mantener coherente el grupo.

  • GroupIndex mayor que 0 crea un grupo de opciones
  • Down lee o establece el estado desde código
  • El estado pulsado se dibuja con un tinte de acento
  • Una acción enlazada controla Down mediante su Checked
Leer el tema de la ayuda

Comandos

Menús desplegables desde tu menú emergente

Los niveles de zoom, los formatos de exportación y los archivos recientes pertenecen a un menú bajo un botón, no a diez botones más. Un elemento tikDropdown dibuja una flecha pequeña tras su título y muestra justo debajo del botón el menú emergente que asignas a DropdownMenu: un TPopupMenu en VCL y FireMonkey, un ContextMenuStrip en WinForms. OnItemClick y el OnClick del elemento se disparan antes de que se abra el menú, así que puedes rellenar o marcar sus entradas primero. Si el menú se libera, la barra borra la referencia por ti. Un objetivo de clic, un menú, y una barra de herramientas que se mantiene corta aunque los comandos crezcan.

  • DropdownMenu acepta el menú emergente de tu marco
  • La flecha se dibuja tras el título
  • Rellena o marca el menú en OnItemClick
  • Funciona también desde el menú de desbordamiento
Leer el tema de la ayuda

Comandos Solo registrada

Los elementos que no caben pasan a un menú de desbordamiento

Los usuarios cambian el tamaño de las ventanas, y una barra de herramientas que simplemente recorta sus últimos botones oculta comandos que necesitan. Cuando los elementos no caben, sgcToolbar mueve los últimos a una lista de desbordamiento y dibuja un botón de doble chevrón en el extremo derecho. Al pulsarlo muestra OverflowMenu, construido en tiempo de ejecución con una entrada por cada elemento oculto, y elegir una entrada actúa exactamente como un clic: un interruptor cambia, se dispara OnItemClick y un desplegable muestra su menú. El modelo te dice qué está oculto. Cuando la ventana vuelve a crecer, los elementos regresan a la barra por sí solos.

  • OverflowMenu se construye por ti en tiempo de ejecución
  • HasOverflow, OverflowCount e InOverflow por elemento
  • ItemAtPos informa de un acierto en el botón de desbordamiento
  • Se compila bajo SGC_TOOLBAR_ADVANCED

Community: los elementos que no caben se recortan, no hay botón de desbordamiento.

Leer el tema de la ayuda

Comandos Solo registrada

Reutiliza tus TAction

Si tus comandos ya viven en un TActionList, la barra de herramientas no debería duplicarlos. Enlaza un elemento a cualquier TAction de VCL o FireMonkey mediante su propiedad Action y sigue el Caption, Enabled, Visible, Hint, ImageIndex y Checked de la acción. Un clic ejecuta la acción con la barra como su ActionComponent, salvo que el elemento tenga un gestor OnClick. Las barras llaman a InitiateAction en reposo, así que una acción deshabilitada deshabilita su botón sin código adicional. En .NET el elemento tiene Command y CommandParameter para ICommand. Un solo TActionList puede gobernar a la vez la barra de herramientas, el menú principal y la barra de navegación.

  • Action enlaza un elemento a cualquier TBasicAction
  • El Checked de la acción controla Down de un interruptor
  • El OnUpdate de las acciones se ejecuta en reposo
  • .NET: Command y CommandParameter

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

Leer el tema de la ayuda

Barra de estado

Una barra de estado que se organiza sola, muestra progreso y estado, y acepta actualizaciones desde cualquier hilo.

Paneles de estado que se organizan solos

Barra de estado

Paneles de estado que se organizan solos

La línea y la columna, un nombre de archivo, el estado de guardado y un mensaje principal compiten por el borde inferior de la ventana. TsgcVCLStatusBar organiza sus Panels de izquierda a derecha en tres pasadas: los paneles fijos toman su Width, los paneles AutoSize toman el ancho de su texto y los paneles Spring se reparten lo que queda. Usa un panel spring para el mensaje principal y la barra se mantiene ordenada con cualquier tamaño de ventana. Una línea fina separa los paneles, y OnPanelClick te dice en cuál se hizo clic. Los paneles son una colección, así que puedes añadirlos y editarlos en el Object Inspector en tiempo de diseño.

  • Paneles spkText con Alignment y Hint
  • Los paneles Spring se reparten el ancho libre
  • Los paneles AutoSize se ajustan a su texto
  • OnPanelClick informa de un clic en un panel
Leer el tema de la ayuda
Barras de progreso e indicadores de estado

Barra de estado

Barras de progreso e indicadores de estado

Las operaciones largas necesitan una barra de progreso, y las conexiones en vivo necesitan una luz que diga si todo va bien. Un panel puede ser una barra de progreso llena hasta el porcentaje Progress con el color de acento, o un indicador: un punto de color seguido del texto del panel. IndicatorState elige apagado, correcto, aviso o error, con verde, ámbar y rojo ajustados por separado para el tema claro y el oscuro. Va bien para el estado de una conexión a base de datos, una fuente de datos o una sincronización en segundo plano. Establece Progress o IndicatorState y el panel se repinta solo, sin código de dibujo que escribir.

  • spkProgress con Progress de 0 a 100
  • spkIndicator con IndicatorState
  • sisOff, sisOk, sisWarning, sisError
  • GetIndicatorColor devuelve el color para el tema
Leer el tema de la ayuda

Barra de estado

Actualiza la barra de estado desde un hilo de trabajo

Las descargas, las fuentes de datos y los cálculos largos se ejecutan en hilos de trabajo, y devolver cada actualización de estado al hilo principal es tedioso y fácil de hacer mal. SetPanelText, SetProgress y SetIndicator pueden llamarse desde cualquier hilo sin Synchronize ni Queue. El modelo protege los valores con un bloqueo y dispara OnChange solo cuando un valor cambia de verdad, así que repetir el mismo valor no cuesta nada. La barra VCL envía entonces un mensaje a su ventana y la barra FireMonkey encola el repintado, de modo que la interfaz nunca se toca fuera del hilo principal. Un hilo que sobrevive a un panel tampoco da problemas.

  • SetPanelText, SetProgress, SetIndicator desde cualquier hilo
  • Ningún Synchronize ni Queue en tu código
  • Los valores sin cambios no cuestan nada
  • Un índice fuera de rango se ignora, nunca lanza una excepción
Leer el tema de la ayuda

Aspecto, teclado y salida

Iconos, temas y soporte de teclado a juego con el resto de sgcUI, más imágenes de las barras para tu documentación.

Iconos o letras glifo, títulos opcionales

Aspecto, teclado y salida

Iconos o letras glifo, títulos opcionales

Cada elemento en el que se puede hacer clic tiene una ranura de icono de 16 píxeles lógicos. Muestra la imagen en ImageIndex de la lista Images de la barra o, cuando un elemento no tiene imagen, su Glyph: una letra o un símbolo corto que no necesita lista de imágenes. Desactiva ShowCaptions para una barra compacta solo de iconos, y el título pasa a ser la sugerencia, así que no se pierde nada. Las listas de imágenes de VCL se convierten una vez a ARGB directo con el alfa recuperado y se guardan en caché hasta que la lista cambia, así que las listas con máscara y las de 32 bits se ven bien. Mezcla ambos libremente mientras aún se diseñan los iconos.

  • Images e ImageIndex para listas de imágenes
  • Glyph cuando no hay imagen
  • ShowCaptions a False para solo iconos
  • Listas de imágenes de FireMonkey desde Delphi XE8
  • De derecha a izquierda para árabe y hebreo: los elementos fluyen desde la derecha, y MirrorGlyph voltea los iconos direccionales como atrás, adelante, deshacer y rehacer
Leer el tema de la ayuda
Claro, oscuro y tu color de acento

Aspecto, teclado y salida

Claro, oscuro y tu color de acento

Las barras toman sus colores de los tokens de tema de sgcUICore, los mismos que usa cada producto de la suite, así que una barra de herramientas sobre un sgcGrid y junto a una barra sgcNavigation parece una sola aplicación. Theme selecciona utLight o utDark, y AccentColor sustituye el acento que usan el anillo de foco, el tinte pulsado de los interruptores y las barras de progreso. Los estados hover, pulsado, activo, enfocado y deshabilitado se derivan por ti. Cada barra tiene su propio Theme, así que establécelo en la barra de herramientas y en la barra de estado. Cambiarlo en tiempo de ejecución repinta ambas barras a la vez.

  • Theme: utDefault (predeterminado, sigue el tema de la aplicación), utLight o utDark
  • AccentColor como $AARRGGBB, 0 mantiene el acento del tema
  • Los colores de los indicadores siguen el tema
  • Cambia en tiempo de ejecución para un interruptor de modo oscuro
Leer el tema de la ayuda

Aspecto, teclado y salida

Acceso con teclado y un tirador de tamaño que funciona

La barra de herramientas puede entrar en el orden de tabulación cuando tus usuarios lo necesiten: establece TabStop y el botón enfocado muestra un anillo de foco, Izquierda y Derecha se mueven entre botones habilitados, Inicio y Fin saltan, Intro o Espacio activan. Viene desactivado por defecto, así que la barra nunca le quita el foco al editor que tiene debajo. ClickItem activa un elemento desde código, por ejemplo desde un atajo del formulario. En la barra de estado, SizeGrip dibuja los puntos del tirador, y en VCL arrastrarlos cambia el tamaño de un formulario redimensionable. En FireMonkey el tirador se dibuja pero no cambia el tamaño del formulario, así que desactiva SizeGrip allí cuando el formulario no sea redimensionable.

  • TabStop en VCL, CanFocus en FireMonkey
  • ClickItem ejecuta un elemento desde código
  • SizeGrip y GripRect en la barra de estado
  • El tirador cambia el tamaño del formulario solo cuando es redimensionable
Leer el tema de la ayuda

Aspecto, teclado y salida

Renderiza ambas barras sin ventana

Las capturas de una barra de herramientas en un manual quedan obsoletas con cada versión. El renderizador de sgcToolbar_Render pinta un TsgcToolbarModel o un TsgcStatusBarModel sin ventana y sin VCL ni FireMonkey, así que un programa de consola, una prueba o un servidor web pueden producir las mismas barras como imagen. SaveToPNG y SaveToSVG toman un tamaño en píxeles lógicos y una escala, así que 560 por 44 con escala 2 da una imagen nítida de 1120 por 88. Las unidades compilan en todas las plataformas, Linux64 incluido. Pasa tus propias imágenes mediante OnGetImage y la imagen coincide con la aplicación en ejecución.

  • SaveToPNG escribe un archivo o flujo PNG
  • SaveToSVG escribe la misma barra como SVG
  • Funciona con TsgcToolbarModel y TsgcStatusBarModel
  • OnGetImage aporta iconos a la salida sin ventana
Leer el tema de la ayuda

Mira sgcToolbar en acción

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

Quién construye con sgcToolbar

Editores de documentos y de código

Un editor necesita interruptores de Negrita y Cursiva, un grupo de opciones de alineación, un menú de Zoom y una barra de estado con la línea, la columna y el estado de guardado. sgcToolbar lo cubre todo con una colección de elementos y una colección de paneles, enlazadas al TActionList que ya tienes. Cuando la ventana se estrecha, el menú de desbordamiento mantiene alcanzable cada comando. La demo EditorShell construye exactamente esto alrededor de un TMemo.

  • Tipos de elemento
  • Grupos de opciones
  • Menú de desbordamiento
Ejecuta la demo EditorShell

Herramientas de larga duración y fuentes en vivo

Las herramientas de importación, los clientes de sincronización y las aplicaciones de monitorización hacen su trabajo en hilos en segundo plano y deben informar de él. Llama a SetProgress, SetIndicator y SetPanelText directamente desde el hilo de trabajo, y la barra de estado se repinta en el hilo principal sin Synchronize en tu código. El indicador pasa a verde, ámbar o rojo según el estado del trabajo. La demo LiveStatus simula una descarga que hace exactamente esto.

  • Actualizaciones seguras entre hilos
  • Paneles de progreso
  • Indicadores
Ejecuta la demo LiveStatus

Una barra de comandos en todas las plataformas

Una aplicación FireMonkey que se entrega en Windows, macOS y móviles merece la misma barra de herramientas en todas partes. TsgcFMXToolbar y TsgcFMXStatusBar tienen los mismos elementos, paneles y eventos que las barras VCL, y las barras .NET para WinForms, WPF y Avalonia siguen los mismos nombres. EditorShellFMX es la versión FireMonkey de la estructura del editor, con los mismos elementos, menú de desbordamiento y paneles de estado.

  • Barras FireMonkey
  • Temas
  • Paneles de estado
Ejecuta la demo EditorShellFMX

Una barra de herramientas y una barra de estado en pocas líneas

La misma API en Delphi, C++ Builder y C#: un interruptor, un grupo de opciones, un desplegable y una barra de estado actualizada desde el gestor de clic.

procedure TMainForm.CreateBars;
var
  oItem: TsgcToolbarItem;
  oPanel: TsgcStatusBarPanel;
begin
  // a toolbar with a toggle, a Left/Center radio group and a dropdown
  FToolbar := TsgcVCLToolbar.Create(Self);
  FToolbar.Parent := Self;
  FToolbar.ShowCaptions := True;
  FToolbar.ShowHint := True;
  FToolbar.OnItemClick := ToolbarItemClick;
  oItem := FToolbar.Items.Add;
  oItem.Caption := 'Save';
  oItem.Glyph := 'S';
  oItem.Hint := 'Save the document';
  FToolbar.Items.Add.Kind := tikSeparator;
  oItem := FToolbar.Items.Add;
  oItem.Kind := tikToggle;
  oItem.Caption := 'Bold';
  oItem.Glyph := 'B';
  oItem := FToolbar.Items.Add;
  oItem.Kind := tikToggle;
  oItem.GroupIndex := 1;
  oItem.Down := True;
  oItem.Caption := 'Left';
  oItem := FToolbar.Items.Add;
  oItem.Kind := tikToggle;
  oItem.GroupIndex := 1;
  oItem.Caption := 'Center';
  oItem := FToolbar.Items.Add;
  oItem.Kind := tikDropdown;
  oItem.Caption := 'Zoom';
  oItem.DropdownMenu := FZoomMenu;
  // a status bar: a spring text panel, a progress bar and an indicator
  FStatusBar := TsgcVCLStatusBar.Create(Self);
  FStatusBar.Parent := Self;
  oPanel := FStatusBar.Panels.Add;
  oPanel.Spring := True;
  oPanel.Text := 'Ready';
  FStatusBar.Panels.Add.Kind := spkProgress;
  oPanel := FStatusBar.Panels.Add;
  oPanel.Kind := spkIndicator;
  oPanel.AutoSize := True;
  oPanel.Text := 'Saved';
  oPanel.IndicatorState := sisOk;
end;

procedure TMainForm.ToolbarItemClick(Sender: TObject; aItem: TsgcToolbarItem);
begin
  // the setters are thread safe, a worker thread can call them directly
  FStatusBar.SetPanelText(0, aItem.Caption + ' clicked');
  FStatusBar.SetProgress(1, 60);
  FStatusBar.SetIndicator(2, sisWarning);
end;
#include <vcl.h>
#include <Vcl.Menus.hpp>
#include "sgcUICore_Theme.hpp"
#include "sgcToolbar_Model.hpp"
#include "sgcToolbar_VCL.hpp"

class TBarHandler : public TObject
{
public:
  TsgcVCLStatusBar *StatusBar;
  void __fastcall ItemClick(TObject *Sender, TsgcToolbarItem *aItem);
};

void __fastcall TBarHandler::ItemClick(TObject *Sender, TsgcToolbarItem *aItem)
{
  // the setters are thread safe, a worker thread can call them directly
  StatusBar->SetPanelText(0, aItem->Caption + " clicked");
  StatusBar->SetProgress(1, 60);
  StatusBar->SetIndicator(2, sisWarning);
}

void __fastcall CreateBars(TForm *Form, TBarHandler *Handler, TPopupMenu *ZoomMenu)
{
  // a toolbar with a toggle, a Left/Center radio group and a dropdown
  TsgcVCLToolbar *Toolbar = new TsgcVCLToolbar(Form);
  Toolbar->Parent = Form;
  Toolbar->ShowCaptions = true;
  Toolbar->OnItemClick = Handler->ItemClick;
  TsgcToolbarItem *Item = Toolbar->Items->Add();
  Item->Caption = "Save";
  Item->Glyph = "S";
  Item->Hint = "Save the document";
  Toolbar->Items->Add()->Kind = tikSeparator;
  Item = Toolbar->Items->Add();
  Item->Kind = tikToggle;
  Item->Caption = "Bold";
  Item = Toolbar->Items->Add();
  Item->Kind = tikToggle;
  Item->GroupIndex = 1;
  Item->Down = true;
  Item->Caption = "Left";
  Item = Toolbar->Items->Add();
  Item->Kind = tikToggle;
  Item->GroupIndex = 1;
  Item->Caption = "Center";
  Item = Toolbar->Items->Add();
  Item->Kind = tikDropdown;
  Item->Caption = "Zoom";
  Item->DropdownMenu = ZoomMenu;
  // a status bar: a spring text panel, a progress bar and an indicator
  TsgcVCLStatusBar *StatusBar = new TsgcVCLStatusBar(Form);
  StatusBar->Parent = Form;
  TsgcStatusBarPanel *Panel = StatusBar->Panels->Add();
  Panel->Spring = true;
  Panel->Text = "Ready";
  StatusBar->Panels->Add()->Kind = spkProgress;
  Panel = StatusBar->Panels->Add();
  Panel->Kind = spkIndicator;
  Panel->AutoSize = true;
  Panel->Text = "Saved";
  Panel->IndicatorState = sisOk;
  Handler->StatusBar = StatusBar;
}
using System;
using System.Windows.Forms;
using esegece.sgcToolbar;

internal class MainForm : Form
{
    private readonly TsgcWinFormsToolbar Toolbar = new TsgcWinFormsToolbar();
    private readonly TsgcWinFormsStatusBar StatusBar = new TsgcWinFormsStatusBar();

    public MainForm()
    {
        // a toolbar with a toggle, a Left/Center radio group and a dropdown
        Toolbar.ShowCaptions = true;
        Toolbar.OnItemClick = ToolbarItemClick;
        TsgcToolbarItem oItem = Toolbar.Items.Add();
        oItem.Caption = "Save";
        oItem.Glyph = "S";
        oItem.Hint = "Save the document";
        Toolbar.Items.Add().Kind = TsgcToolbarItemKind.tikSeparator;
        oItem = Toolbar.Items.Add();
        oItem.Kind = TsgcToolbarItemKind.tikToggle;
        oItem.Caption = "Bold";
        oItem = Toolbar.Items.Add();
        oItem.Kind = TsgcToolbarItemKind.tikToggle;
        oItem.GroupIndex = 1;
        oItem.Down = true;
        oItem.Caption = "Left";
        oItem = Toolbar.Items.Add();
        oItem.Kind = TsgcToolbarItemKind.tikToggle;
        oItem.GroupIndex = 1;
        oItem.Caption = "Center";
        ContextMenuStrip oZoom = new ContextMenuStrip();
        oZoom.Items.Add("100%");
        oZoom.Items.Add("200%");
        oItem = Toolbar.Items.Add();
        oItem.Kind = TsgcToolbarItemKind.tikDropdown;
        oItem.Caption = "Zoom";
        oItem.DropdownMenu = oZoom;
        // a status bar: a spring text panel, a progress bar and an indicator
        TsgcStatusBarPanel oPanel = StatusBar.Panels.Add();
        oPanel.Spring = true;
        oPanel.Text = "Ready";
        StatusBar.Panels.Add().Kind = TsgcStatusPanelKind.spkProgress;
        oPanel = StatusBar.Panels.Add();
        oPanel.Kind = TsgcStatusPanelKind.spkIndicator;
        oPanel.AutoSize = true;
        oPanel.Text = "Saved";
        oPanel.IndicatorState = TsgcStatusIndicatorState.sisOk;
        Controls.Add(Toolbar);
        Controls.Add(StatusBar);
    }

    private void ToolbarItemClick(object sender, TsgcToolbarItem aItem)
    {
        // the setters are thread safe, a worker thread can call them directly
        StatusBar.SetPanelText(0, aItem.Caption + " clicked");
        StatusBar.SetProgress(1, 60);
        StatusBar.SetIndicator(2, TsgcStatusIndicatorState.sisWarning);
    }
}
dotnet add package esegece.sgcToolbar.WinForms

Ejecuta las demos de sgcToolbar

Las demos EditorShell y LiveStatus se incluyen para VCL y C++ Builder, más una versión FireMonkey para Delphi, y en la edición .NET como proyectos WinForms, WPF y Avalonia.

EditorShell

Solo registrada EditorShell

Una estructura de editor con un TMemo, con interruptores, un grupo de opciones Izquierda, Centro y Derecha, un desplegable Zoom, enlaces a TActionList, el menú de desbordamiento, paneles de línea y columna y un interruptor Dark. Usa desbordamiento y acciones, así que necesita la edición Registrada o de prueba.

LiveStatus

Un hilo de trabajo simula una descarga y alimenta un panel de texto, un panel de progreso y un indicador que pasa a verde, ámbar o rojo, con botones Start y Stop. Compila con la edición Community.

Solo registrada EditorShellFMX

La demo EditorShell con un TsgcFMXToolbar y un TsgcFMXStatusBar alrededor de un TMemo de FireMonkey, solo para Delphi: los mismos elementos, enlaces de acción, menú de desbordamiento y paneles de estado.

Demos compiladas

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

Descargar sgcUI_bin.zip →

Dónde se incluye sgcToolbar

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

Paquete individual de sgcToolbar

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

Comprar sgcToolbar → Ver precios →

sgcUI Standard

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

Ver Standard →

sgcUI Professional

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

Ver Professional →

sgcUI Enterprise

Los 14 productos sgcUI, desde €699.

Ver Enterprise →

La edición Community gratuita (esegece.sgcToolbar.Community en NuGet) no incluye el menú de desbordamiento ni los enlaces de acción.

FunciónCommunity (gratuita)Registrada
Todos los tipos de elemento, interruptores, grupos de opciones y menús desplegables✓✓
Paneles de texto, progreso e indicador✓✓
Actualizaciones de estado seguras entre hilos✓✓
Iconos, glifos, temas, teclado y tirador de tamaño✓✓
Salida PNG y SVG sin ventana✓✓
Menú de desbordamiento−✓
Enlaces de acción (Delphi) y Command (.NET)−✓

Frameworks y plataformas compatibles

Componentes de sgcToolbar

ComponenteDestino
TsgcVCLToolbar, TsgcVCLStatusBarDelphi y C++ Builder, VCL (sgcToolbar_VCL)
TsgcFMXToolbar, TsgcFMXStatusBarDelphi y C++ Builder, FireMonkey (sgcToolbar_FMX)
TsgcToolbarItem, TsgcStatusBarPanel, TsgcToolbarModel, TsgcStatusBarModelModelos independientes del marco (sgcToolbar_Model)
TsgcWinFormsToolbar, TsgcWinFormsStatusBar.NET, WinForms
TsgcWpfToolbar, TsgcWpfStatusBar.NET, WPF
TsgcAvaloniaToolbar, TsgcAvaloniaStatusBar.NET, Avalonia
DestinoComponentePlataformas
Delphi 7 a 13, VCLTsgcVCLToolbar, TsgcVCLStatusBarWin32 y Win64
Delphi XE6 a 13, FireMonkeyTsgcFMXToolbar, TsgcFMXStatusBarWindows, macOS, iOS, Android y Linux (FMXLinux)
C++ Builder 2007 a 13Barras VCL y FireMonkeyCabeceras .hpp generadas y bibliotecas estáticas
Delphi 10.2 a 13, independiente del marcoModelos y renderizador PNG y SVG sin ventanaLinux64, por ejemplo para renderizar una barra de herramientas en un servidor
.NET Framework 4.7.2, .NET 8, 9 y 10TsgcWinFormsToolbar, barras WPF y AvaloniaWinForms, WPF y Avalonia

Preguntas frecuentes

Sí. SetPanelText, SetProgress y SetIndicator pueden llamarse desde cualquier hilo sin Synchronize ni Queue. El modelo protege los valores con un bloqueo y la barra se repinta en el hilo principal. Todas las demás propiedades se establecen desde el hilo principal. Consulta Actualizaciones seguras entre hilos.

Cubre las mismas tareas: botones, interruptores, botones desplegables, separadores y etiquetas arriba, paneles de texto abajo. Añade un elemento espaciador, paneles de progreso e indicador, métodos de establecimiento seguros entre hilos, temas y salida sin ventana. Tus componentes TActionList y TPopupMenu existentes se conectan mediante Action y DropdownMenu.

El menú de desbordamiento y los enlaces de acción de los elementos, que en .NET son Command y CommandParameter. En Community los elementos que no caben se recortan. Todas las demás funciones, incluidas las actualizaciones de estado seguras entre hilos, los paneles de progreso e indicador y la salida sin ventana, están en Community.

Sí. C++ Builder 2007 a 13 usan las mismas barras VCL y FireMonkey mediante cabeceras y bibliotecas generadas, y las demos EditorShell y LiveStatus también se entregan como proyectos de C++ Builder. La pestaña de código de esta página muestra la misma barra de herramientas en Delphi, C++ Builder y C#.

Sí. Todos los tamaños son píxeles lógicos multiplicados por la escala del monitor, y la ranura de icono es de 16 píxeles lógicos, así que los botones, los glifos, las barras de progreso y los puntos de los indicadores se ven nítidos con cualquier DPI. FireMonkey toma las imágenes de la lista de imágenes al tamaño de dispositivo del marco.

Sí. SaveToSVG y SaveToPNG de TsgcToolbarModel y TsgcStatusBarModel dibujan las barras sin ventana, también en Linux64 desde Delphi 10.2, así que un paso de compilación puede regenerar las imágenes de tu manual en cada versión. Un parámetro de escala da imágenes nítidas para pantallas de alta densidad e impresión.

Ayuda de sgcToolbar

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 sgcToolbar hoy

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