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

sgcToolbar, la barra degli strumenti e la barra di stato per Delphi, C++ Builder & .NET

Costruisci la cornice di un'applicazione desktop con due controlli che hanno lo stesso aspetto su ogni UI. Una barra degli strumenti con pulsanti, toggle, gruppi di opzioni e menu a discesa, e una vera barra di stato con pannelli di avanzamento e di indicatori che un thread di lavoro può aggiornare direttamente.

VCL, FireMonkey, WinForms, WPF, AvaloniaAggiornamenti della barra di stato da qualsiasi threadEdizione .NET Community gratuitaIncluso in sgcUI Standard
Barra degli strumenti di EditorShell a 2x con didascalie su un pulsante, un toggle, un separatore, un menu a discesa, un'etichetta e uno spacer

Una barra di comandi e di stato completa

Dodici funzionalità per le due barre di cui ogni applicazione desktop ha bisogno, dai gruppi di opzioni all'avanzamento live da un thread di lavoro.

Comandi

Ogni voce di cui una barra di comandi ha bisogno, con raggruppamento, menu e overflow gestiti dal controllo.

Ogni tipo di voce della barra in un solo controllo

Comandi

Ogni tipo di voce della barra in un solo controllo

Una vera barra degli strumenti applicativa mescola pulsanti semplici, pulsanti che restano premuti, pulsanti con un menu, separatori e un po' di testo. Con sgcToolbar ognuno è una voce della stessa collezione, e Kind decide come viene disegnato e come reagisce. Le voci sono disposte da sinistra a destra con Spacing tra loro, e uno spacer occupa la larghezza libera, così puoi spingere Aiuto o un nome utente sul bordo destro senza alcun codice di layout. Width fissa una voce quando serve una dimensione stabile. Suggerimenti, stati disabilitati e hot tracking sono disegnati per ogni tipo.

  • tikButton, tikToggle e tikDropdown per i comandi
  • tikSeparator disegna una sottile linea verticale
  • tikSpacer spinge a destra le voci successive
  • tikLabel mostra testo dentro la barra
Leggi l'argomento della guida
Gruppi di opzioni senza codice

Comandi

Gruppi di opzioni senza codice

Allineamento del testo, modalità di visualizzazione e strumenti di disegno sono classiche scelte uno tra molti. Assegna lo stesso GroupIndex a più voci toggle e formano un gruppo di opzioni: impostare Down su una di esse, con un clic o da codice, rilascia le altre, e un clic sulla voce già premuta la lascia premuta, così una scelta resta sempre selezionata. Un toggle con GroupIndex 0 è un semplice interruttore acceso e spento come Grassetto o A capo automatico. Il clic inverte Down prima che OnItemClick venga generato, così il tuo gestore legge il nuovo stato. Non serve alcun collegamento di eventi per mantenere coerente il gruppo.

  • GroupIndex maggiore di 0 crea un gruppo di opzioni
  • Down legge o imposta lo stato da codice
  • Lo stato premuto è disegnato con una tinta di accento
  • Un'azione collegata comanda Down tramite il suo Checked
Leggi l'argomento della guida

Comandi

I livelli di zoom, i formati di esportazione e i file recenti stanno in un menu sotto un pulsante, non in altri dieci pulsanti. Una voce tikDropdown disegna una piccola freccia dopo la didascalia e mostra il menu popup che assegni a DropdownMenu subito sotto il pulsante: un TPopupMenu in VCL e FireMonkey, un ContextMenuStrip in WinForms. OnItemClick e l'OnClick della voce vengono generati prima che il menu si apra, così puoi riempire o selezionare prima le sue voci. Se il menu viene liberato, la barra azzera il riferimento per te. Un solo bersaglio di clic, un solo menu e una barra degli strumenti che resta corta anche quando i comandi crescono.

  • DropdownMenu accetta il popup del tuo framework
  • La freccia è disegnata dopo la didascalia
  • Riempi o seleziona il menu in OnItemClick
  • Funziona anche dal menu di overflow
Leggi l'argomento della guida

Comandi Solo Registered

Le voci che non entrano passano a un menu di overflow

Gli utenti ridimensionano le finestre, e una barra degli strumenti che si limita a tagliare gli ultimi pulsanti nasconde comandi di cui hanno bisogno. Quando le voci non entrano, sgcToolbar sposta le ultime in un elenco di overflow e disegna un pulsante con doppio chevron all'estremità destra. Premendolo si mostra OverflowMenu, costruito a runtime con una voce per ogni elemento nascosto, e scegliere una voce agisce esattamente come un clic: un toggle si inverte, OnItemClick viene generato e un dropdown mostra il suo menu. Il modello ti dice cosa è nascosto. Quando la finestra torna a crescere, le voci rientrano da sole nella barra.

  • OverflowMenu viene costruito per te a runtime
  • HasOverflow, OverflowCount e InOverflow per ogni voce
  • ItemAtPos segnala un clic sul pulsante di overflow
  • Compilato con SGC_TOOLBAR_ADVANCED

Community: le voci che non entrano vengono tagliate, non c'è il pulsante di overflow.

Leggi l'argomento della guida

Comandi Solo Registered

Riusa i tuoi TAction

Se i tuoi comandi vivono già in una TActionList, la barra degli strumenti non deve duplicarli. Collega una voce a qualsiasi TAction VCL o FireMonkey tramite la sua proprietà Action e segue Caption, Enabled, Visible, Hint, ImageIndex e Checked dell'azione. Un clic esegue l'azione con la barra come ActionComponent, a meno che la voce non abbia un gestore OnClick. Le barre chiamano InitiateAction a riposo, così un'azione disabilitata disabilita il suo pulsante senza codice aggiuntivo. In .NET la voce ha Command e CommandParameter per ICommand. Una sola TActionList può comandare insieme la barra degli strumenti, il menu principale e la barra di navigazione.

  • Action collega una voce a qualsiasi TBasicAction
  • Il Checked dell'azione comanda Down di un toggle
  • L'OnUpdate delle azioni viene eseguito a riposo
  • .NET: Command e CommandParameter

Community: gestisci l'OnClick della voce o l'OnItemClick della barra al posto di un'azione.

Leggi l'argomento della guida

Barra di stato

Una barra di stato che si dispone da sola, mostra avanzamento e stato e accetta aggiornamenti da qualsiasi thread.

Pannelli di stato che si dispongono da soli

Barra di stato

Pannelli di stato che si dispongono da soli

Riga e colonna, un nome di file, lo stato di salvataggio e un messaggio principale si contendono il bordo inferiore della finestra. TsgcVCLStatusBar dispone i suoi Panels da sinistra a destra in tre passaggi: i pannelli fissi prendono il loro Width, i pannelli AutoSize prendono la larghezza del loro testo e i pannelli Spring si dividono ciò che resta. Usa un pannello spring per il messaggio principale e la barra resta ordinata a qualsiasi dimensione della finestra. Una sottile linea separa i pannelli e OnPanelClick ti dice quale è stato cliccato. I pannelli sono una collezione, quindi puoi aggiungerli e modificarli nell'Object Inspector in fase di progettazione.

  • Pannelli spkText con Alignment e Hint
  • I pannelli Spring si dividono la larghezza libera
  • I pannelli AutoSize si adattano al loro testo
  • OnPanelClick segnala un clic su un pannello
Leggi l'argomento della guida
Barre di avanzamento e indicatori di stato

Barra di stato

Barre di avanzamento e indicatori di stato

Le operazioni lunghe hanno bisogno di una barra di avanzamento, e le connessioni live di una luce che dica se tutto va bene. Un pannello può essere una barra di avanzamento riempita fino alla percentuale Progress nel colore di accento, oppure un indicatore: un punto colorato seguito dal testo del pannello. IndicatorState sceglie off, ok, warning o error, con verde, ambra e rosso regolati separatamente per il tema chiaro e scuro. Va bene per lo stato di una connessione a un database, di un feed di dati o di una sincronizzazione in background. Imposta Progress o IndicatorState e il pannello si ridisegna da solo, senza codice di disegno da scrivere.

  • spkProgress con Progress da 0 a 100
  • spkIndicator con IndicatorState
  • sisOff, sisOk, sisWarning, sisError
  • GetIndicatorColor restituisce il colore per il tema
Leggi l'argomento della guida

Barra di stato

Aggiorna la barra di stato da un thread di lavoro

Download, feed e calcoli lunghi girano in thread di lavoro, e riportare ogni aggiornamento di stato al thread principale è noioso e facile da sbagliare. SetPanelText, SetProgress e SetIndicator possono essere chiamati da qualsiasi thread senza Synchronize né Queue. Il modello protegge i valori con un lock e genera OnChange solo quando un valore è davvero cambiato, quindi ripetere lo stesso valore non costa nulla. La barra VCL invia poi un messaggio alla propria finestra e la barra FireMonkey mette in coda il ridisegno, così la UI non viene mai toccata fuori dal thread principale. È sicuro anche un thread che sopravvive a un pannello.

  • SetPanelText, SetProgress, SetIndicator da qualsiasi thread
  • Nessun Synchronize o Queue nel tuo codice
  • I valori invariati non costano nulla
  • Un indice fuori intervallo viene ignorato, mai sollevato come errore
Leggi l'argomento della guida

Aspetto, tastiera e output

Icone, temi e supporto della tastiera in linea con il resto di sgcUI, più immagini delle barre per la tua documentazione.

Icone o lettere glifo, didascalie facoltative

Aspetto, tastiera e output

Icone o lettere glifo, didascalie facoltative

Ogni voce cliccabile ha uno slot per l'icona di 16 pixel logici. Mostra l'immagine all'ImageIndex della lista Images della barra oppure, quando una voce non ha immagine, il suo Glyph: una lettera o un breve simbolo che non richiede alcuna image list. Disattiva ShowCaptions per una barra compatta di sole icone, e la didascalia diventa il suggerimento, quindi non si perde nulla. Le image list VCL vengono convertite una sola volta in ARGB lineare con l'alfa recuperato e tenute in cache finché l'elenco non cambia, così sia le liste con maschera sia quelle a 32 bit appaiono corrette. Mescola liberamente entrambi mentre le icone sono ancora in progettazione.

  • Images e ImageIndex per le image list
  • Glyph quando non c'è un'immagine
  • ShowCaptions False per le sole icone
  • Image list FireMonkey da Delphi XE8
  • Da destra a sinistra per arabo ed ebraico: gli elementi scorrono da destra, e MirrorGlyph capovolge le icone direzionali come indietro, avanti, annulla e ripeti
Leggi l'argomento della guida
Chiaro, scuro e il tuo colore di accento

Aspetto, tastiera e output

Chiaro, scuro e il tuo colore di accento

Le barre prendono i loro colori dai token di tema di sgcUICore, gli stessi usati da ogni prodotto della suite, così una barra degli strumenti sopra una sgcGrid e accanto a una barra sgcNavigation sembra un'unica applicazione. Theme seleziona utLight o utDark, e AccentColor sostituisce l'accento usato dall'anello di focus, dalla tinta premuta dei toggle e dalle barre di avanzamento. Gli stati hot, premuto, down, focus e disabilitato sono tutti derivati per te. Ogni barra ha il proprio Theme, quindi impostalo sulla barra degli strumenti e sulla barra di stato. Il cambio a runtime ridisegna entrambe le barre insieme.

  • Theme: utDefault (predefinito, segue il tema dell'applicazione), utLight o utDark
  • AccentColor come $AARRGGBB, 0 mantiene l'accento del tema
  • I colori degli indicatori seguono il tema
  • Cambia a runtime per un interruttore della modalità scura
Leggi l'argomento della guida

Aspetto, tastiera e output

Accesso da tastiera e un size grip funzionante

La barra degli strumenti può entrare nell'ordine di tabulazione quando i tuoi utenti ne hanno bisogno: imposta TabStop e il pulsante con focus mostra un anello di focus, Sinistra e Destra si spostano tra i pulsanti abilitati, Home e Fine saltano, Invio o Spazio attivano. È disattivato per impostazione predefinita, così la barra non ruba mai il focus all'editor sottostante. ClickItem attiva una voce da codice, per esempio da una scorciatoia del form. Sulla barra di stato, SizeGrip disegna i puntini di presa e in VCL trascinarli ridimensiona un form ridimensionabile. In FireMonkey la presa viene disegnata ma non ridimensiona il form, quindi disattiva SizeGrip quando il form non è ridimensionabile.

  • TabStop in VCL, CanFocus in FireMonkey
  • ClickItem esegue una voce da codice
  • SizeGrip e GripRect sulla barra di stato
  • La presa ridimensiona il form solo quando è ridimensionabile
Leggi l'argomento della guida

Aspetto, tastiera e output

Genera entrambe le barre senza una finestra

Gli screenshot di una barra degli strumenti in un manuale diventano obsoleti a ogni release. Il renderer in sgcToolbar_Render disegna un TsgcToolbarModel o un TsgcStatusBarModel senza finestra e senza VCL o FireMonkey, così un programma console, un test o un web server possono produrre le stesse barre come immagine. SaveToPNG e SaveToSVG accettano una dimensione in pixel logici e una scala, quindi 560 per 44 a scala 2 dà un'immagine nitida da 1120 per 88. Le unit si compilano su ogni piattaforma, Linux64 compreso. Passa le tue immagini tramite OnGetImage e l'immagine corrisponde all'applicazione in esecuzione.

  • SaveToPNG scrive un file o uno stream PNG
  • SaveToSVG scrive la stessa barra come SVG
  • Funziona su TsgcToolbarModel e TsgcStatusBarModel
  • OnGetImage fornisce le icone all'output headless
Leggi l'argomento della guida

Guarda sgcToolbar all'opera

sgcToolbar nelle demo della suite sgcUI: applicazioni complete che funzionano offline con dati simulati integrati.

Chi sviluppa con sgcToolbar

Editor di documenti e di codice

Un editor ha bisogno di toggle Grassetto e Corsivo, un gruppo di opzioni per l'allineamento, un menu Zoom e una barra di stato con riga, colonna e stato di salvataggio. sgcToolbar copre tutto con una collezione di voci e una collezione di pannelli, collegate alla TActionList che hai già. Quando la finestra si restringe, il menu di overflow mantiene raggiungibile ogni comando. La demo EditorShell costruisce esattamente questo attorno a un TMemo.

  • Tipi di voce
  • Gruppi di opzioni
  • Menu di overflow
Esegui la demo EditorShell

Strumenti di lunga durata e feed live

Gli strumenti di importazione, i client di sincronizzazione e le app di monitoraggio lavorano in thread in background e devono riportare ciò che fanno. Chiama SetProgress, SetIndicator e SetPanelText direttamente dal thread di lavoro, e la barra di stato si ridisegna sul thread principale senza Synchronize nel tuo codice. L'indicatore diventa verde, ambra o rosso in base allo stato del lavoro. La demo LiveStatus simula un download che fa esattamente questo.

  • Aggiornamenti thread safe
  • Pannelli di avanzamento
  • Indicatori
Esegui la demo LiveStatus

Un'unica barra di comandi su ogni piattaforma

Un'applicazione FireMonkey distribuita su Windows, macOS e mobile merita la stessa barra degli strumenti ovunque. TsgcFMXToolbar e TsgcFMXStatusBar hanno le stesse voci, gli stessi pannelli e gli stessi eventi delle barre VCL, e le barre .NET per WinForms, WPF e Avalonia seguono gli stessi nomi. EditorShellFMX è la versione FireMonkey della struttura dell'editor, con le stesse voci, lo stesso menu di overflow e gli stessi pannelli di stato.

  • Barre FireMonkey
  • Temi
  • Pannelli di stato
Esegui la demo EditorShellFMX

Una barra degli strumenti e una barra di stato in poche righe

La stessa API in Delphi, C++ Builder e C#: un toggle, un gruppo di opzioni, un dropdown e una barra di stato aggiornata dal gestore del 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

Esegui le demo di sgcToolbar

Le demo EditorShell e LiveStatus sono fornite per VCL e C++ Builder, più una versione FireMonkey per Delphi, e nell'edizione .NET come progetti WinForms, WPF e Avalonia.

EditorShell

Solo Registered EditorShell

Una struttura editor con TMemo, con toggle, un gruppo di opzioni Sinistra, Centro e Destra, un dropdown Zoom, collegamenti TActionList, il menu di overflow, pannelli di riga e colonna e un toggle Dark. Usa overflow e azioni, quindi richiede l'edizione Registered o Trial.

LiveStatus

Un thread di lavoro simula un download e alimenta un pannello di testo, un pannello di avanzamento e un indicatore che diventa verde, ambra o rosso, con i pulsanti Start e Stop. Si compila con l'edizione Community.

Solo Registered EditorShellFMX

La demo EditorShell con una TsgcFMXToolbar e una TsgcFMXStatusBar attorno a un TMemo FireMonkey, solo per Delphi: le stesse voci, i collegamenti alle azioni, il menu di overflow e i pannelli di stato.

Demo compilate

Eseguibili pronti all'uso di ogni prodotto sgcUI, senza nulla da installare.

Scarica sgcUI_bin.zip →

Dove è incluso sgcToolbar

sgcToolbar è presente in ogni edizione di sgcUI, a partire da Standard, ed è venduto anche separatamente. sgcToolbar è incluso anche nel bundle All-Access.

sgcToolbar come pacchetto singolo

€149 / sviluppatore, codice sorgente completo, 1 anno di aggiornamenti.

Acquista sgcToolbar → Vedi i prezzi →

sgcUI Standard

sgcToolbar, sgcGrid, sgcNavigation e sgcEditors, da €380.

Vedi Standard →

sgcUI Professional

Standard più sgcCharts, sgcDashboard e sgcGauges, da €529.

Vedi Professional →

sgcUI Enterprise

Tutti i 14 prodotti sgcUI, da €699.

Vedi Enterprise →

L'edizione Community gratuita (esegece.sgcToolbar.Community su NuGet) non include il menu di overflow e i collegamenti Action.

FunzionalitàCommunity (gratuita)Registered
Ogni tipo di voce, toggle, gruppi di opzioni e menu a discesa✓✓
Pannelli di testo, di avanzamento e di indicatori✓✓
Aggiornamenti di stato thread safe✓✓
Icone, glifi, temi, tastiera e size grip✓✓
Output PNG e SVG headless✓✓
Menu di overflow−✓
Collegamenti Action (Delphi) e Command (.NET)−✓

Framework e piattaforme supportati

Componenti di sgcToolbar

ComponenteTarget
TsgcVCLToolbar, TsgcVCLStatusBarDelphi e C++ Builder, VCL (sgcToolbar_VCL)
TsgcFMXToolbar, TsgcFMXStatusBarDelphi e C++ Builder, FireMonkey (sgcToolbar_FMX)
TsgcToolbarItem, TsgcStatusBarPanel, TsgcToolbarModel, TsgcStatusBarModelModelli indipendenti dal framework (sgcToolbar_Model)
TsgcWinFormsToolbar, TsgcWinFormsStatusBar.NET, WinForms
TsgcWpfToolbar, TsgcWpfStatusBar.NET, WPF
TsgcAvaloniaToolbar, TsgcAvaloniaStatusBar.NET, Avalonia
TargetComponentePiattaforme
Delphi da 7 a 13, VCLTsgcVCLToolbar, TsgcVCLStatusBarWin32 e Win64
Delphi da XE6 a 13, FireMonkeyTsgcFMXToolbar, TsgcFMXStatusBarWindows, macOS, iOS, Android e Linux (FMXLinux)
C++ Builder da 2007 a 13Barre VCL e FireMonkeyHeader .hpp generati e librerie statiche
Delphi da 10.2 a 13, indipendente dal frameworkModelli e renderer PNG e SVG headlessLinux64, per esempio per generare una barra degli strumenti su un server
.NET Framework 4.7.2, .NET 8, 9 e 10TsgcWinFormsToolbar, barre WPF e AvaloniaWinForms, WPF e Avalonia

Domande frequenti

Sì. SetPanelText, SetProgress e SetIndicator possono essere chiamati da qualsiasi thread senza Synchronize né Queue. Il modello protegge i valori con un lock e la barra si ridisegna sul thread principale. Ogni altra proprietà si imposta dal thread principale. Vedi Aggiornamenti thread safe.

Svolge gli stessi compiti: pulsanti, toggle, pulsanti dropdown, separatori ed etichette in alto, pannelli di testo in basso. Aggiunge una voce spacer, pannelli di avanzamento e di indicatori, setter thread safe, temi e output headless. I tuoi TActionList e TPopupMenu esistenti si collegano tramite Action e DropdownMenu.

Il menu di overflow e i collegamenti Action delle voci, che in .NET sono Command e CommandParameter. In Community le voci che non entrano vengono tagliate. Ogni altra funzionalità, compresi gli aggiornamenti di stato thread safe, i pannelli di avanzamento e di indicatori e l'output headless, è in Community.

Sì. C++ Builder da 2007 a 13 usa le stesse barre VCL e FireMonkey tramite header e librerie generati, e anche le demo EditorShell e LiveStatus sono fornite come progetti C++ Builder. La scheda del codice in questa pagina mostra la stessa barra degli strumenti in Delphi, C++ Builder e C#.

Sì. Tutte le dimensioni sono pixel logici moltiplicati per la scala del monitor, e lo slot dell'icona è di 16 pixel logici, quindi pulsanti, glifi, barre di avanzamento e punti degli indicatori restano nitidi a qualsiasi DPI. FireMonkey prende le immagini dall'image list alla dimensione del dispositivo del frame.

Sì. SaveToSVG e SaveToPNG di TsgcToolbarModel e TsgcStatusBarModel disegnano le barre senza finestra, anche su Linux64 da Delphi 10.2, così un passaggio di build può rigenerare le immagini del tuo manuale a ogni release. Un parametro scale dà immagini nitide per gli schermi ad alto DPI e per la stampa.

Guida di sgcToolbar

3,000+Sviluppatori
20+Anni
761+Componenti
30+Integrazioni API
5Piattaforme
Garanzia soddisfatti o rimborsati di 30 giorniNon sei soddisfatto? Richiedi un rimborso completo entro 30 giorni dall'acquisto. Vedi la politica di rimborso

Prova sgcToolbar oggi

Il trial di sgcUI include sgcToolbar e ogni altro prodotto sgcUI.