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

sgcNavigation, la stessa barra di navigazione per FireMonkey, .NET e Delphi 7 a 13

Dai alla tua applicazione un moderno menu di navigazione in pochi minuti. Un unico controllo è una sidebar o un accordion, si riduce a una barra di icone con un'animazione fluida, mostra badge per i contatori non letti e funziona interamente da tastiera. I temi chiaro e scuro sono già inclusi, e il form a schede mette le schede dei documenti in una barra del titolo con tema, come un browser web. Un solo modello e un solo renderer headless guidano la barra su FireMonkey, WinForms, WPF, Avalonia, la VCL di Delphi 7 a 13 e C++ Builder, così ogni front end del tuo prodotto si naviga allo stesso modo.

FireMonkey, WinForms, WPF, Avalonia, VCLDelphi 7 a 13C++ Builder 2007 a 13Edizione .NET Community gratuitaIncluso in sgcUI Standard
Demo SidebarApp con una sidebar di 8 voci nei gruppi Workspace e Business, Dashboard selezionata e due schede KPI sulla destra

Tutto ciò che serve al menu di un'app

Venti funzioni che trasformano un elenco di pagine in una shell di navigazione in cui i tuoi utenti si orientano subito.

Layout e modalità

Un solo controllo copre i due stili di navigazione usati dalle applicazioni gestionali e la stretta barra di icone che sta tra i due.

Una moderna sidebar per app in un solo componente

Layout e modalità

Una moderna sidebar per app in un solo componente

La maggior parte delle applicazioni gestionali ha bisogno della stessa cosa sul bordo sinistro del form principale: un elenco di pagine, raggruppate per area, con la pagina corrente ben evidenziata. Inserisci una TsgcVCLNavigationBar nel form, allineala a sinistra e aggiungi le voci. Le intestazioni di gruppo danno il titolo alle righe sottostanti con un colore attenuato e non vengono mai selezionate. La riga selezionata ha uno sfondo con tinta di accento e una barra di accento da 3 pixel, così gli utenti vedono sempre dove si trovano. Gli stati hover e premuto, i suggerimenti e le righe disabilitate sono tutti disegnati per te, quindi la barra sembra rifinita fin dalla prima esecuzione.

  • Mode := nbmSidebar è lo stile predefinito
  • IsGroup trasforma una voce in un'intestazione di gruppo
  • ItemHeight e GroupHeight impostano l'altezza delle righe
  • La rotellina del mouse scorre gli elenchi lunghi e ScrollIntoView mostra qualsiasi voce
  • Da destra a sinistra per arabo ed ebraico: icone e didascalie si scambiano di posto, e il rientro, i chevron, i badge e il pulsante di compressione sono speculari
Leggi l'argomento della guida
Passa a un accordion con una sola proprietà

Layout e modalità

Passa a un accordion con una sola proprietà

Le schermate delle impostazioni e le console di amministrazione hanno spesso più sezioni di quante ne entrino a schermo. Imposta Mode su nbmAccordion e ogni intestazione di gruppo diventa una sezione che apre e chiude le voci sottostanti, con un chevron a destra e i figli rientrati. Per impostazione predefinita è aperto un solo gruppo alla volta, il che mantiene breve un menu lungo. Imposta AllowMultiExpand quando gli utenti hanno bisogno di più sezioni aperte insieme. Le voci, gli eventi e il tuo codice restano esattamente gli stessi. Le voci inserite prima della prima intestazione non appartengono ad alcun gruppo e sono sempre visibili, il che è ideale per una voce Home o Dashboard sopra le sezioni.

  • Mode := nbmAccordion cambia l'intera barra
  • Expanded apre o chiude un gruppo da codice
  • AllowMultiExpand permette di tenere aperti più gruppi
  • Indent imposta il rientro delle voci figlie
Leggi l'argomento della guida

Layout e modalità

Riduci a una barra di icone, con animazione

Le sidebar larghe sottraggono spazio ai dati che i tuoi utenti sono venuti a vedere. Imposta Collapsed e la barra passa dalla larghezza espansa a una stretta barra di icone in circa 150 ms. Nella barra vengono disegnate solo le icone, la didascalia diventa il suggerimento, le intestazioni di gruppo diventano linee di separazione e i badge diventano punti, quindi non si perde nulla di importante. La barra imposta da sola la propria larghezza, perciò il contenuto accanto la segue semplicemente con alClient. Collega la proprietà Collapsed a un pulsante hamburger, a un'impostazione dell'utente o alla larghezza del form, e la barra si apre e si chiude allo stesso modo sia in modalità sidebar sia in modalità accordion.

  • Collapsed passa da una larghezza all'altra
  • ExpandedWidth (220) e CollapsedWidth (56) in pixel logici
  • AnimateCollapse attiva o disattiva l'animazione
  • OnCollapsedChange ti avvisa quando la barra si apre o si chiude
Leggi l'argomento della guida

Layout e modalità

Comanda le tue pagine dalla selezione

Una barra di navigazione è utile solo se cambia ciò che l'utente vede. Fai clic o tocca una voce abilitata e la barra la seleziona, genera OnItemClick e poi esegue l'OnClick della voce. OnSelectionChange è l'unico punto in cui mostrare la pagina corrispondente, per esempio la scheda di un TPageControl con le schede nascoste, ed è esattamente così che è costruita la demo SidebarApp. SelectedIndex legge e imposta da codice la pagina corrente. Disabilita una voce che l'utente non può ancora raggiungere, spiega il motivo nel suo suggerimento, oppure nascondila ai ruoli che non devono vederla, e la logica di selezione continua a funzionare.

  • SelectedIndex è la pagina scelta dall'utente
  • OnSelectionChange cambia la pagina o il frame
  • OnItemClick sulla barra e OnClick per ogni voce
  • Enabled, Hint e Visible per ogni voce
Leggi l'argomento della guida

Shell di navigazione

Un albero a più livelli con ricerca, schede per i documenti, un breadcrumb e un riquadro comandi, tutto sullo stesso modello indipendente dal framework della barra.

Demo NavigationShellFMX con un albero ricercabile di Mail, Contacts, Calendar e Settings a sinistra, quattro schede con Work attiva e un breadcrumb Mail, Folders, Work sopra la pagina

Shell di navigazione

Un albero a più livelli con ricerca

Le applicazioni grandi superano presto un elenco piatto di pagine. Imposta Mode su nbmTree e la barra diventa un albero con tutti i livelli che servono: le voci restano una collezione piatta e il Depth di una voce ne fissa il livello, quindi il codice che riempie la barra cambia appena. Ogni livello è rientrato e ogni genitore può essere compresso. Attiva ShowSearch e una riga di ricerca sopra le voci filtra l'albero mentre l'utente digita, mantiene aperti i genitori di ogni risultato ed evidenzia i caratteri corrispondenti. La corrispondenza approssimata trova 'Settings' da 'stg'. La modalità albero e la ricerca fanno parte di ogni edizione.

  • Mode := nbmTree e Depth per voce
  • ExpandAll, CollapseAll e Expand(aIndex, aRecursive)
  • Filter con FilterMode nfmContains o nfmFuzzy
  • ShowSearch disegna la riga di ricerca, Esc la svuota
  • Destra e Sinistra espandono e comprimono, * espande un intero ramo
Leggi l'argomento della guida

Shell di navigazione

Schede per i documenti aperti

Le applicazioni in stile documento mostrano le pagine aperte come schede. TsgcFMXNavigationTabs, TsgcVCLNavigationTabs e le strisce per WinForms, WPF e Avalonia disegnano schede con icona, titolo, pulsante di chiusura e un punto di modificato, più un pulsante di nuova scheda e un elenco di tutte le schede. Quando le schede non entrano, TabSizing le restringe oppure compaiono i pulsanti di scorrimento. Il Control di una scheda è la pagina che la striscia mostra finché la scheda è attiva. Nell'edizione Registered l'utente trascina anche le schede in una nuova posizione, fissa quelle che devono restare e trascina una scheda fuori dalla striscia per aprirla in una finestra propria, e SaveLayout conserva la disposizione per l'esecuzione successiva.

  • Tabs.AddTab, ActiveIndex e Control per scheda
  • TabSizing, CloseButtons, ShowNewButton, ShowListButton
  • Ctrl+Tab, clic centrale per chiudere, OnTabClose può rifiutare
  • Solo Registered riordino con il trascinamento, schede Pinned, OnTabTearOff, SaveLayout e LoadLayout
Leggi l'argomento della guida Riordino, schede fissate e distacco

Shell di navigazione

Un breadcrumb che segue l'albero

Gli alberi profondi richiedono un modo per vedere dove ci si trova e per risalire. Il breadcrumb mostra il percorso come una fila di segmenti, per esempio Mail, Folders, Work. Un clic su un segmento torna a quel punto, e il chevron dopo un segmento elenca i suoi figli per andare altrove. Collegalo a una barra di navigazione e segue la voce selezionata, oppure riempilo da solo da un Path o dai Segments. Quando il percorso è troppo lungo, i primi segmenti si ripiegano in un pulsante di overflow. Nell'edizione Registered un clic sull'area vuota, F4 o Ctrl+L trasforma il breadcrumb in un campo di modifica con il percorso completo, come la barra degli indirizzi di un file manager.

  • NavigationBar collega il breadcrumb a una barra
  • Path, PathDelimiter e OnGetChildren in autonomia
  • OnSegmentClick e AutoTruncate
  • Solo Registered modalità di modifica con OnPathEdit
Leggi l'argomento della guida

Shell di navigazione Solo Registered

Un riquadro comandi per ogni comando

Gli utenti esperti preferiscono digitare piuttosto che cercare nei menu. Premi Ctrl+Maiusc+P e il riquadro comandi si apre in cima alla finestra: digita qualche lettera e ordina ogni comando per corrispondenza approssimata, così 'tgsb' trova 'Toggle sidebar', con i caratteri corrispondenti evidenziati, la categoria o il percorso in un colore attenuato e la scorciatoia a destra. Con la ricerca vuota i comandi usati di recente vengono per primi. Il riquadro elenca i propri comandi e ogni origine di comandi che aggiungi: le voci di una barra di navigazione, i pulsanti di una barra multifunzione o di una barra degli strumenti (Delphi), le azioni di un elenco di azioni o un'origine tua.

  • Commands.AddCommand con categoria, parole chiave e testo della scorciatoia
  • Sources.AddSource per una barra, una barra multifunzione, una barra degli strumenti o un elenco di azioni
  • SaveRecent e LoadRecent conservano l'elenco dei recenti
  • ICommand sui comandi in .NET

Edizione Registered su FireMonkey, VCL, WinForms, WPF e Avalonia. L'interfaccia IsgcUICommandSource fa parte di ogni edizione.

Leggi l'argomento della guida Origini dei comandi

Shell di navigazione

Un form a schede con le schede nella barra del titolo

I browser, i terminali e gli editor moderni mettono le loro schede nel titolo della finestra, così i documenti hanno tutta l'altezza dello schermo. Il form a schede fa lo stesso per la tua applicazione. Trascinalo su un form e collegalo alla striscia di schede: sgcUI rimuove la barra del titolo nativa e disegna una barra del titolo con tema con l'icona della finestra, le schede, il pulsante di nuova scheda e i pulsanti Riduci a icona, Ingrandisci e Chiudi, nel tema sgcUI dell'applicazione, Classic o Fluent, chiaro o scuro. La finestra mantiene l'ombra, i bordi di ridimensionamento e il comportamento da ingrandita, e Windows 11 mostra i layout snap quando il puntatore si ferma sul pulsante Ingrandisci. Lo spazio vuoto a destra dell'ultima scheda trascina la finestra. Nell'edizione Registered l'utente trascina una scheda fuori dalla striscia in una nuova finestra e la rilascia sulla barra del titolo di un'altra finestra, come in un browser web.

  • TsgcVCLNavigationTabbedForm e TsgcFMXNavigationTabbedForm in Delphi e C++ Builder, TsgcWinFormsNavigationTabbedForm, TsgcWpfNavigationTabbedWindow e TsgcAvaloniaNavigationTabbedWindow in .NET
  • Tabs collega la striscia di schede. In Delphi, Notebook sposta la striscia di un notebook nella barra del titolo, mentre le pagine restano nel notebook
  • Un doppio clic sulla striscia vuota ingrandisce la finestra e un clic destro mostra il menu di sistema
  • In WPF e Avalonia la proprietà associata Tabs della finestra la configura da XAML
  • Solo Registered distacco: TearOffMode sposta una scheda staccata nella finestra sotto il puntatore, e ttmNewForm la apre in una nuova finestra da OnCreateTearOffForm che segue il puntatore

Il form a schede è in ogni edizione, Community compresa. Il distacco è nell'edizione Registered, come il distacco delle schede. La cornice con tema richiede Windows con la composizione del desktop, e in FireMonkey viene applicata solo su Windows: su macOS, Linux, iOS e Android resta la barra del titolo nativa.

Leggi l'argomento della guida Cornice della finestra Form a schede .NET

Gestore di docking

Uno spazio di lavoro in stile IDE: pannelli strumenti agganciati su ogni lato, a scomparsa automatica o mobili, un'area dei documenti a schede al centro e una disposizione salvata come JSON.

Sito di docking con Explorer e Search a schede a sinistra, una barra Toolbox a scomparsa automatica, quattro schede di documenti, Properties a destra e Output in basso, con le guide di rilascio e il rettangolo di anteprima sulla metà destra dei documenti mentre si trascina Output

Gestore di docking Solo Registered

Trascina i pannelli sulle guide di rilascio

Le applicazioni con molte finestre strumenti hanno bisogno di uno spazio di lavoro che l'utente possa disporre. TsgcVCLDockManager, TsgcFMXDockManager, TsgcWinFormsDockManager, TsgcWpfDockManager e TsgcAvaloniaDockManager agganciano i pannelli strumenti ai quattro lati del form, in suddivisioni annidate con splitter e in gruppi a schede. L'utente trascina una didascalia o una scheda, e le guide di rilascio mostrano dove può atterrare: una bussola sul gruppo sotto il puntatore divide quel gruppo su un lato o vi inserisce il pannello come scheda, le guide sui bordi lo agganciano a un bordo dell'intero sito, e un rettangolo di anteprima nel colore d'accento mostra lo spazio che occuperà. Esc annulla il trascinamento. La pagina Docking per Avalonia mostra TsgcAvaloniaDockManager in XAML e C#.

  • Panels.Add con Name, Caption, Placement e DockSize, e il tuo controllo come Control
  • DockPanel, ClosePanel, ShowPanel e ActivatePanel nel codice
  • OnPanelDock può rifiutare un cambio di aggancio, di mobilità o di scomparsa automatica
  • Pulsanti di chiusura, fissaggio, ingrandimento e menu su ogni didascalia
Leggi l'argomento della guida Trascinamento

Gestore di docking Solo Registered

Scomparsa automatica dei pannelli nelle barre laterali

I pannelli strumenti che servono solo ogni tanto non dovrebbero occupare spazio sempre. Il pulsante di fissaggio di una didascalia nasconde automaticamente il suo gruppo: i pannelli diventano schede su una barra sottile al lato del form, e passare il mouse o fare clic su una scheda fa scorrere il pannello sopra il contenuto. Torna indietro quando l'utente lavora altrove, e il pulsante di fissaggio della finestra a comparsa aggancia di nuovo il gruppo, sul lato e con la dimensione che aveva. Su iOS e Android un tocco apre la finestra a comparsa.

  • Model.SetAutoHide(aPanel, True) nel codice
  • AutoHideDelay imposta il ritardo del passaggio del mouse, 400 ms per impostazione predefinita
  • CanAutoHide per pannello, i documenti non scompaiono mai automaticamente
  • Alt+F7 e il riquadro comandi aprono la finestra a comparsa di un pannello a scomparsa automatica
Leggi l'argomento della guida

Gestore di docking Solo Registered

Finestre mobili sul desktop

Un pannello rilasciato lontano dalle guide diventa una finestra propria, che l'utente sposta in un altro punto o su un altro monitor. Una finestra mobile contiene una disposizione come il sito di docking, quindi altri pannelli si possono agganciare al suo interno affiancati o come schede, e un doppio clic sulla sua didascalia la aggancia di nuovo. Le finestre mobili sono finestre strumento senza bordo appartenenti al form e tenute fuori dalla barra delle applicazioni, con una didascalia disegnata e un bordo che le ridimensiona, e ognuna usa la scala del proprio monitor. Funzionano nelle applicazioni desktop VCL, WinForms, WPF, Avalonia e FireMonkey su Windows e macOS. Su iOS e Android i pannelli non diventano mobili, e un trascinamento mostra solo le guide.

  • FloatPanel(aPanel, aLeft, aTop) nel codice
  • AllowFloating sul gestore di docking e CanFloat per pannello
  • Placement := dplFloat avvia un pannello come mobile con FloatWidth per FloatHeight
  • Una finestra mobile fuori dall'area di lavoro visibile torna al suo interno quando si carica una disposizione
Leggi l'argomento della guida

Gestore di docking Solo Registered

Un'area dei documenti a schede al centro

Il centro del sito di docking contiene i documenti: uno o più gruppi di documenti, ciascuno con una barra delle schede in alto. La barra funziona come le schede di navigazione, con riordino con il trascinamento, documenti fissati per primi, pulsanti di chiusura, un punto di modificato, il clic centrale per chiudere, Ctrl+Tab e l'elenco di tutte le schede. Trascina la scheda di un documento su un braccio laterale della bussola per dividere l'area in due gruppi di documenti, affiancati o impilati, staccala per renderla mobile, oppure fai doppio clic per ingrandire il suo gruppo. Il pulsante di nuova scheda genera OnNewDocument, dove il tuo codice crea il documento successivo.

  • Kind := dpkDocument, con Pinned e Modified per pannello
  • DocumentTabSizing, DocumentCloseButtons, DocumentShowNewButton e DocumentShowListButton
  • Ctrl+F6 scorre i documenti, OnActiveDocumentChange segnala quello attivo
  • OnPanelClose può mantenere aperto un documento
Leggi l'argomento della guida

Gestore di docking Solo Registered

Salva la disposizione e ripristinala

Gli utenti si aspettano di ritrovare i pannelli dove li hanno lasciati. SaveLayout scrive l'intera disposizione come JSON compatto: le suddivisioni e le loro dimensioni, i gruppi e i loro pannelli attivi, i gruppi a scomparsa automatica di ogni lato, le finestre mobili con i loro limiti, il gruppo ingrandito e i pannelli nascosti. LoadLayout la ripristina al prossimo avvio. Il testo è lo stesso in Delphi e in .NET, quindi un solo file di disposizione serve per entrambi. Un pannello che la disposizione nomina ma che il form non ha ancora, come un documento che era aperto, arriva a OnRestorePanel, dove il tuo codice ne crea il contenuto o lo scarta.

  • SaveLayout, SaveLayoutToFile e SaveLayoutToStream
  • LoadLayout, LoadLayoutFromFile e LoadLayoutFromStream restituiscono False con un testo estraneo e non cambiano nulla
  • OnRestorePanel per i pannelli creati a runtime
  • Un comando "Window" per pannello trasforma il riquadro comandi in un selettore di finestre

Edizione Registered su FireMonkey, VCL, WinForms, WPF e Avalonia, con supporto per C++ Builder. Tastiera, UI Automation, da destra a sinistra, temi e high DPI inclusi.

Leggi l'argomento della guida

Voci che informano

Le righe portano più di una didascalia: un'icona, un contatore e un collegamento alla logica che hai già scritto.

Badge per i contatori non letti

Voci che informano

Badge per i contatori non letti

Gli utenti devono vedere che qualcosa richiede attenzione prima di aprire la pagina. Assegna a una voce un Badge, come un contatore non letti o la parola Nuovo, e la barra lo disegna come una pillola nel colore di accento a destra della riga, con testo nero o bianco, a seconda di quale si legge meglio. Impostalo da codice ogni volta che il valore cambia e la barra si ridisegna da sola. Nella barra di icone compressa il badge diventa un punto sull'icona. Poiché il badge è testo semplice, la stessa proprietà copre contatori, etichette brevi e parole di stato senza alcun codice di disegno personalizzato.

  • Badge è un breve testo per ogni voce
  • Un Badge vuoto non disegna nulla
  • La pillola usa l'accento del tema o il tuo AccentColor
  • Combinalo con Hint per spiegare il contatore
Leggi l'argomento della guida
Icone dalla tua image list o un glifo

Voci che informano

Icone dalla tua image list o un glifo

Ogni riga ha uno slot per l'icona. Indica alla barra l'image list che già usi e imposta ImageIndex per ogni voce: le immagini con maschera o a 32 bit vengono convertite una sola volta e tenute in cache finché l'elenco non cambia. Non hai ancora un'image list? Imposta invece un Glyph, una lettera o un breve simbolo che segue i colori del tema, ed è così che appaiono le demo. Una voce disabilitata disegna la sua immagine al 40 percento di opacità, così lo stato è chiaro a colpo d'occhio. Puoi mescolare entrambi: le voci con un indice di immagine mostrano l'immagine e le altre ripiegano sul loro glifo, così puoi aggiungere le icone gradualmente.

  • Images e ImageIndex per le image list
  • Glyph per una lettera o un simbolo senza immagini
  • VCL disegna le immagini nella loro dimensione
  • Image list FireMonkey da Delphi XE8
Leggi l'argomento della guida

Voci che informano Solo Registered

Collega le voci ai tuoi TAction

Le applicazioni costruite su una TActionList hanno già comandi, didascalie e regole di abilitazione in un unico posto. Collega una voce a qualsiasi TAction VCL o FireMonkey tramite la sua proprietà Action e Caption, Enabled, Visible, Hint e ImageIndex seguono l'azione. Un clic esegue l'azione con la barra come ActionComponent, e OnUpdate viene eseguito a riposo, quindi una voce diventa grigia non appena la sua azione viene disabilitata. In .NET lo stesso compito è svolto da Command e CommandParameter. Una sola TActionList può gestire il menu, la barra degli strumenti e le scorciatoie da tastiera del form.

  • Action collega una voce a qualsiasi TBasicAction
  • L'OnClick di una voce viene eseguito al posto dell'azione
  • Compilato con SGC_NAVIGATION_ACTIONS
  • .NET: Command e CommandParameter con ICommand

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

Leggi l'argomento della guida

Tastiera, temi e output

I dettagli che fanno sembrare la barra nativa e la mantengono coerente con il resto della tua applicazione.

Navigazione prima di tutto da tastiera

Tastiera, temi e output

Gli utenti esperti cambiano pagina senza il mouse, e le verifiche di accessibilità se lo aspettano. La barra riceve il focus con Tab e sposta la riga attiva tra le voci visibili e abilitate: Su e Giù scorrono, Home e Fine saltano, Invio o Spazio attivano. Nell'accordion Sinistra comprime un gruppo e Destra lo espande. Il rettangolo di focus tratteggiato appare solo mentre si usa la tastiera, e il focus resta separato dalla pagina selezionata. Gli stessi tasti funzionano nella barra FireMonkey tramite CanFocus, così gli utenti desktop ottengono lo stesso comportamento su ogni piattaforma.

  • TabStop è attivo per impostazione predefinita nella barra VCL
  • FocusedIndex del modello è la riga della tastiera
  • SelectedIndex resta la pagina scelta
  • I suggerimenti mostrano la didascalia nella barra di icone compressa
Leggi l'argomento della guida
Chiaro, scuro e il tuo colore di accento

Tastiera, temi e output

Chiaro, scuro e il tuo colore di accento

Un menu che ignora il tema dell'applicazione sembra aggiunto a posteriori. Theme imposta i colori di superficie, bordo, testo, intestazione di gruppo, hover e accento a partire dai token condivisi di sgcUICore, così una barra e un sgcDashboard con lo stesso Theme coincidono esattamente. AccentColor sostituisce l'accento con il colore del tuo marchio per la barra di selezione, il rettangolo di focus e i badge. Una barra ospitata in una tessera di dashboard segue da sola il tema della dashboard. Cambia il tema a runtime e la barra si ridisegna subito, pronta per un interruttore della modalità scura nella tua pagina delle impostazioni.

  • Theme: utDefault (predefinito, segue il tema dell'applicazione), utLight o utDark
  • AccentColor come valore $AARRGGBB, 0 mantiene l'accento del tema
  • Gli stessi token di ogni prodotto sgcUI
  • Le tessere della dashboard trasmettono il loro tema alla barra
Leggi l'argomento della guida
Genera la barra senza una finestra

Tastiera, temi e output

Genera la barra senza una finestra

Documentazione, test visivi e back end web hanno a volte bisogno di un'immagine del menu, non del menu stesso. Il renderer in sgcNavigation_Render disegna un TsgcNavigationModel senza finestra e senza VCL o FireMonkey, così un programma console, un servizio o un server producono la stessa barra come PNG o SVG. L'unit si compila su ogni piattaforma, Linux64 compreso, e un parametro scale dà immagini nitide per gli schermi ad alto DPI. Passa la tua image list al renderer e l'immagine esportata mostra le stesse icone dell'applicazione in esecuzione.

  • sgcNavigationSaveToPNG scrive un file o uno stream PNG
  • sgcNavigationSaveToSVG scrive la stessa barra come SVG
  • sgcNavigationRender disegna su qualsiasi canvas sgcUICore
  • Larghezza e altezza in pixel logici, per la scala
Leggi l'argomento della guida

Guarda sgcNavigation all'opera

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

Chi sviluppa con sgcNavigation

Una struttura moderna per ERP e app di amministrazione

Hai decine di form esistenti e una finestra principale che li apre ancora da una barra dei menu. Metti una sidebar a sinistra, una voce per area, e lascia che OnSelectionChange cambi le schede di un TPageControl con le schede nascoste. I badge mostrano gli ordini in sospeso o i messaggi non letti, e la barra di icone restituisce spazio ai form. Esegui SidebarApp per vedere il modello al lavoro con una pagina sgcDashboard.

  • Modalità sidebar
  • Badge
  • Barra di icone compressa
Esegui la demo SidebarApp

Impostazioni e console di amministrazione

Le schermate di configurazione raggruppano decine di pagine sotto pochi titoli come Sales, Inventory e Admin. L'accordion tiene aperta una sola sezione alla volta, o più sezioni con AllowMultiExpand, e i collegamenti Action riutilizzano i comandi e le regole di abilitazione della tua TActionList. Gli utenti da tastiera si muovono tra le sezioni con i tasti freccia. La demo Accordion mostra tre gruppi, un interruttore di espansione e un registro dei clic.

  • Modalità accordion
  • Collegamenti Action
  • Navigazione da tastiera
Esegui la demo Accordion

La stessa navigazione su ogni piattaforma

Un'applicazione FireMonkey che gira su Windows, macOS, iOS e Android non dovrebbe aver bisogno di un menu diverso per ciascuna. TsgcFMXNavigationBar ha le stesse voci, modalità ed eventi della barra VCL, e le barre .NET per WinForms, WPF e Avalonia seguono gli stessi nomi. I team che distribuiscono un'app desktop Delphi e uno strumento .NET mantengono un unico modello mentale. SidebarFMX è la versione FireMonkey della demo della sidebar.

  • Barra FireMonkey
  • Temi
  • Barre .NET
Esegui la demo SidebarFMX

Una barra di navigazione in poche righe

La stessa API in FireMonkey, C#, Delphi VCL e C++ Builder: una barra a fisarmonica con gruppi, un badge, una voce disabilitata e un pulsante Collapse. Le schede FireMonkey e C# aggiungono una striscia di schede e un riquadro comandi.

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 finestra in stile browser: TsgcVCLNavigationTabbedForm sposta la striscia di schede in una barra del titolo 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

Esegui le demo di sgcNavigation

Le demo NavigationShell e DockingShell sono incluse per FireMonkey, VCL, WinForms, WPF e Avalonia. La demo della sidebar è inclusa per FireMonkey, e le demo SidebarApp e Accordion sono incluse nell'edizione .NET come progetti WinForms, WPF e Avalonia e per Delphi VCL e C++ Builder.

NavigationShellFMX

Solo Registered NavigationShellFMX

Una shell di navigazione completa per FireMonkey, solo per Delphi: un albero con una riga di ricerca a sinistra, una scheda per ogni pagina aperta, un breadcrumb che segue l'albero e un riquadro comandi (Ctrl+Maiusc+P) che elenca le voci della barra e un elenco di azioni. Interruttori per il tema scuro e per il da destra a sinistra inclusi. Usa il riquadro, quindi richiede l'edizione Registered o Trial.

Solo Registered NavigationShell

La stessa shell per la VCL, con una piccola barra multifunzione in alto i cui comandi compaiono anche nel riquadro comandi con il loro percorso 'Tab > Group', accanto alle voci dell'albero e alle azioni di un elenco di azioni. Interruttori per il tema scuro e per il da destra a sinistra inclusi.

Solo Registered NavigationShell per .NET

La shell di navigazione nell'edizione .NET: NavigationShell per WinForms, NavigationShellWpf e NavigationShellAvalonia, ciascuna con l'albero e la ricerca, le schede, il breadcrumb e il riquadro comandi.

DockingShell

Solo Registered DockingShell e DockingShellFMX

Una shell in stile IDE costruita sul gestore di docking, per la VCL e per FireMonkey: un albero della barra di navigazione come Explorer a sinistra, Properties a destra, Output a scomparsa automatica in basso e documenti memo con schede fissate e modificate al centro. Il riquadro comandi elenca un comando Window per pannello, sono inclusi un selettore del tema e un pulsante Reset layout, e la disposizione viene salvata in JSON alla chiusura e caricata al prossimo avvio.

Solo Registered DockingShell per .NET

La shell con docking nell'edizione .NET: DockingShell per WinForms, DockingShellWpf e DockingShellAvalonia, ciascuna con pannelli agganciati, a scomparsa automatica e mobili, l'area dei documenti e la disposizione salvata.

TabbedForm e TabbedFormFMX

Una finestra in stile browser con le schede nella barra del titolo, per la VCL e per FireMonkey, con gemelle C++ Builder: un pulsante di nuova scheda, pulsanti di chiusura e un selettore di tema con chiaro, scuro, Fluent chiaro e Fluent scuro. Trascina una scheda fuori dalla striscia e si apre in una nuova finestra che segue il puntatore, poi rilasciala sulla barra del titolo di un'altra finestra. Il distacco richiede l'edizione Registered. Nell'edizione .NET la demo è fornita come TabbedForm per WinForms, TabbedFormWpf e TabbedFormAvalonia.

SidebarFMX

La demo della sidebar costruita con TsgcFMXNavigationBar per FireMonkey, solo per Delphi. Le stesse voci, modalità ed eventi della versione VCL, pronta per Windows, macOS e i target mobili.

SidebarApp

SidebarApp

Una sidebar che comanda un page control con le schede nascoste, con icone, un badge, una voce disabilitata, un pulsante Collapse, una combo dei temi e una pagina KPI sgcDashboard. Dimostra il modello della struttura applicativa end to end.

Accordion

Solo Registered Accordion

Tre gruppi, Sales, Inventory e Admin, un interruttore AllowMultiExpand, collegamenti Action e un registro dei clic. Usa i collegamenti Action, quindi richiede l'edizione Registered o Trial.

Demo compilate

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

Scarica sgcUI_bin.zip →

Guida Getting Started

Cinque demo QuickStart per Delphi (VCL) si trovano in Demos\Navigation\Delphi\00.QuickStart. La guida PDF le spiega passo dopo passo: una prima barra di navigazione, un menu creato da codice, schede di documento, temi e stili, e un piccolo client di posta.

Scarica la guida (PDF, in inglese) →

sgcNavigation o i controlli VCL di RAD Studio 13.2?

RAD Studio 13.2 Florence ha aggiunto due controlli VCL, TNavigationView e TTabView. Se la tua applicazione è solo VCL e compili con la 13.2 o successive, sono una buona scelta integrata. sgcNavigation aggiunge valore quando la stessa navigazione deve girare su FireMonkey e .NET, quando compili con versioni di Delphi meno recenti e quando ti servono un breadcrumb, un riquadro comandi o un albero ricercabile.

TNavigationView è un elenco verticale di voci con modalità normale e compatta, immagini, testo su più righe, scorrimento e riordino con il trascinamento, e collega le sue voci a un controllo multipagina, a un frame o a un TCardPanel. TTabView è una variante moderna di TTabSet le cui schede ospitano form o altri controlli, con un'immagine, testo su più righe e un pulsante di chiusura su ogni scheda, un pulsante per aggiungere una scheda, un elenco a discesa di tutte le schede e pulsanti di scorrimento. Entrambi sono ben progettati e seguono il modello di programmazione della VCL, quindi per un nuovo progetto VCL sulla 13.2 vale la pena guardarli.

sgcNavigation mantiene un solo modello indipendente dal framework e un solo renderer headless dietro ogni host. La barra, e le schede, il breadcrumb, l'albero a più livelli e il riquadro comandi che la affiancano in questa versione, si comportano allo stesso modo su FireMonkey, WinForms, WPF, Avalonia e nella VCL di Delphi 7 a 13, così un prodotto con un front end desktop, uno mobile e uno .NET si naviga ovunque allo stesso modo.

ArgomentosgcNavigationTNavigationView e TTabView (VCL, RAD Studio 13.2)
FrameworkFireMonkey, WinForms, WPF, Avalonia e VCLVCL
Versioni di Delphi e C++ BuilderDelphi 7 a 13 (VCL), Delphi XE6 a 13 (FireMonkey), C++ Builder 2007 a 13RAD Studio 13.2 e successivi
Host .NETWinForms, WPF e Avalonia su .NET Framework 4.7.2, .NET 8, 9 e 10Non applicabile, sono controlli VCL
Rendering headless su LinuxOutput PNG e SVG su Linux64 da Delphi 10.2Non descritto nella documentazione della 13.2
Modello condiviso tra frameworkUn modello indipendente dal framework, con gli stessi nomi in Delphi e .NETNon descritto nella documentazione della 13.2
BreadcrumbBarra breadcrumb che può seguire il nodo selezionato della barraNon descritto nella documentazione della 13.2
Riquadro comandiRiquadro da tastiera con ricerca approssimata su comandi, voci e azioniNon descritto nella documentazione della 13.2
Ricerca nell'alberoAlbero a più livelli con una riga di ricerca che mantiene visibili i genitori di ogni risultatoNon descritto nella documentazione della 13.2

I dettagli di TNavigationView e TTabView provengono dalle note di RAD Studio 13 Florence Release 2 di Embarcadero.

Dove è incluso sgcNavigation

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

sgcNavigation come pacchetto singolo

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

Acquista sgcNavigation → Vedi i prezzi →

sgcUI Standard

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

Vedi Standard →

sgcUI Professional

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

Vedi Professional →

sgcUI Enterprise

Tutti i 17 prodotti sgcUI, da €699.

Vedi Enterprise →

L'edizione Community gratuita (esegece.sgcNavigation.Community su NuGet) ha la barra con modalità albero e ricerca, le schede e il breadcrumb di base, il form a schede con le schede nella barra del titolo e l'interfaccia delle origini dei comandi. L'edizione Registered aggiunge il riquadro comandi, il riordino delle schede, le schede fissate, il distacco e la disposizione delle schede salvata, la modalità di modifica del breadcrumb, il gestore di docking e i collegamenti Action delle voci.

FunzionalitàCommunity (gratuita)Registered
Modalità sidebar e accordion✓✓
Compressione animata a barra di icone✓✓
Icone, glifi e badge✓✓
Navigazione da tastiera✓✓
Temi chiaro e scuro, colore di accento✓✓
Output PNG e SVG headless✓✓
Modalità albero a più livelli e ricerca✓✓
Schede: dimensionamento, pulsanti di chiusura, pulsanti di elenco e di nuova scheda, scorrimento, tastiera✓✓
Form a schede: le schede in una barra del titolo con tema✓✓
Breadcrumb: segmenti, chevron, overflow, collegamento a una barra✓✓
Origini dei comandi (IsgcUICommandSource)✓✓
Riquadro comandi−✓
Riordino delle schede con il trascinamento, schede fissate, distacco, disposizione delle schede salvata−✓
Distacco del form a schede in una nuova finestra−✓
Modalità di modifica del breadcrumb−✓
Gestore di docking−✓
Collegamenti Action (Delphi) e Command (.NET)−✓

Framework e piattaforme supportati

Componenti di sgcNavigation

ComponenteTarget
TsgcFMXNavigationBarDelphi e C++ Builder, FireMonkey (sgcNavigation_FMX)
TsgcWinFormsNavigationBar.NET, WinForms
TsgcWpfNavigationBar.NET, WPF
TsgcAvaloniaNavigationBar.NET, Avalonia
TsgcVCLNavigationBarDelphi e C++ Builder, VCL (sgcNavigation_VCL)
TsgcFMXNavigationTabs, TsgcFMXNavigationBreadcrumb, TsgcFMXCommandPaletteDelphi e C++ Builder, FireMonkey (sgcNavigation_Tabs_FMX, sgcNavigation_Palette_FMX)
TsgcWinFormsNavigationTabs, TsgcWpfNavigationTabs, TsgcAvaloniaNavigationTabs.NET, WinForms, WPF e Avalonia, con le classi Breadcrumb e CommandPalette corrispondenti
TsgcVCLNavigationTabs, TsgcVCLNavigationBreadcrumb, TsgcVCLCommandPaletteDelphi e C++ Builder, VCL (sgcNavigation_Tabs_VCL, sgcNavigation_Palette_VCL)
TsgcVCLNavigationTabbedForm, TsgcFMXNavigationTabbedFormDelphi e C++ Builder, VCL e FireMonkey (sgcNavigation_TabbedForm_VCL, sgcNavigation_TabbedForm_FMX), la barra del titolo con tema su Windows
TsgcWinFormsNavigationTabbedForm, TsgcWpfNavigationTabbedWindow, TsgcAvaloniaNavigationTabbedWindow.NET, WinForms, WPF e Avalonia
TsgcVCLDockManager, TsgcFMXDockManagerDelphi e C++ Builder, VCL e FireMonkey (sgcNavigation_Dock_VCL, sgcNavigation_Dock_FMX), edizione Registered
TsgcWinFormsDockManager, TsgcWpfDockManager, TsgcAvaloniaDockManager.NET, WinForms, WPF e Avalonia, edizione Registered
TsgcNavigationItem, TsgcNavigationItems, TsgcNavigationModelModello indipendente dal framework (sgcNavigation_Model)
TargetComponentePiattaforme
Delphi da XE6 a 13, FireMonkeyTsgcFMXNavigationBarWindows, macOS, iOS, Android e Linux (FMXLinux)
.NET Framework 4.7.2, .NET 8, 9 e 10TsgcWinFormsNavigationBar, barre WPF e AvaloniaWinForms, WPF e Avalonia
Delphi da 7 a 13, VCLTsgcVCLNavigationBarWin32 e Win64
C++ Builder da 2007 a 13TsgcVCLNavigationBar, TsgcFMXNavigationBarHeader .hpp generati e librerie statiche
Delphi da 10.2 a 13, indipendente dal frameworkModello e renderer PNG e SVG headlessLinux64, per esempio per generare una barra su un server

Domande frequenti

Se la tua applicazione è solo VCL, TNavigationView e TTabView di RAD Studio 13.2 sono una buona scelta integrata e li consigliamo volentieri. sgcNavigation è la scelta migliore quando la stessa navigazione deve girare anche in FireMonkey su macOS, iOS, Android o Linux, oppure in un'applicazione WinForms, WPF o Avalonia, quando una parte del tuo team compila ancora con un Delphi o un C++ Builder meno recente, oppure quando vuoi un breadcrumb, un riquadro comandi o un albero a più livelli con ricerca sopra la sidebar. Il modello e il renderer headless PNG e SVG sono condivisi da ogni host. Vedi Scegliere per una tabella di confronto.

Sì, nell'edizione Registered. TsgcFMXCommandPalette, TsgcVCLCommandPalette e i riquadri per WinForms, WPF e Avalonia si aprono con Ctrl+Maiusc+P, ordinano i comandi per corrispondenza approssimata mentre l'utente digita e mostrano per primi i comandi usati di recente. Oltre ai propri comandi, il riquadro elenca ogni origine di comandi che aggiungi: le voci di una barra di navigazione, i comandi di una barra multifunzione o di una barra degli strumenti in Delphi, le azioni di un elenco di azioni o un'origine tua tramite l'interfaccia IsgcUICommandSource. In .NET un comando può portare un ICommand. Vedi il riquadro comandi.

Entrambi. La proprietà Mode passa da nbmSidebar a nbmAccordion sullo stesso controllo, con le stesse voci e gli stessi eventi, così puoi cambiare idea a progetto avanzato oppure offrire entrambi gli stili come preferenza dell'utente. Ogni modalità si riduce anche alla barra di icone compressa.

Sì. Gestisci OnSelectionChange e mostra la pagina corrispondente a SelectedIndex, per esempio la scheda di un TPageControl con le schede nascoste, oppure crea un frame su richiesta. La demo SidebarApp è costruita esattamente così e ospita una pagina KPI sgcDashboard.

Sì. TsgcFMXNavigationBar è destinato a Windows, macOS, iOS, Android e Linux (FMXLinux) da Delphi XE6, con le stesse voci, modalità ed eventi della barra VCL. Le image list FireMonkey richiedono Delphi XE8 o successivo; le versioni precedenti usano il Glyph di ogni voce.

Il riquadro comandi, il riordino delle schede con il trascinamento, le schede fissate e il distacco, la modalità di modifica del breadcrumb, il gestore di docking e i collegamenti Action delle voci, che in .NET sono le proprietà Command e CommandParameter. Usa invece dei collegamenti Action l'OnClick della voce o l'OnItemClick della barra. Ogni altra funzionalità, compresi l'albero con la ricerca, le schede, la barra di icone, i badge, i temi e l'output headless, è in Community. Vedi Edizioni.

No. Il port .NET non ha verbi di progettazione né un editor di collezioni, quindi le voci non vengono serializzate e vanno aggiunte da codice, di solito nel costruttore del form o della finestra. In Delphi e C++ Builder la collezione Items si modifica in fase di progettazione con il normale editor di collezioni.

Sì. Tutte le dimensioni sono pixel logici moltiplicati per la scala del monitor, quindi righe, icone e badge sono nitidi a qualsiasi DPI. In WinForms larghezze e altezze scalano con DPI / 96 come in VCL, mentre in WPF e Avalonia sono unità indipendenti dal dispositivo.

Sì. sgcNavigationSaveToPNG e sgcNavigationSaveToSVG generano una barra dal suo modello senza finestra e senza VCL o FireMonkey, anche su Linux64 da Delphi 10.2. Usali per la documentazione, per i test di regressione visiva o per una pagina web che mostra il menu della tua applicazione.

No. Su iOS e Android i pannelli di TsgcFMXDockManager si agganciano, si dividono, formano schede e scompaiono automaticamente, ma non diventano mobili: AllowFloating viene forzato a False, un tocco apre un pannello a scomparsa automatica perché non c'è il passaggio del mouse, una pressione lunga apre il menu del pannello e un trascinamento mostra solo le guide di rilascio. Le finestre mobili funzionano nelle applicazioni desktop VCL, WinForms, WPF, Avalonia e FireMonkey su Windows e macOS. Una disposizione salvata sul desktop si carica comunque su un telefono: i pannelli delle sue finestre mobili mantengono il posizionamento iniziale. Vedi Finestre mobili.

Guida di sgcNavigation

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 sgcNavigation oggi

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