FireMonkey, .NET & Delphi 7 à 13 Fait partie de sgcUI

sgcNavigation, la même barre de navigation pour FireMonkey, .NET et Delphi 7 à 13

Donne à ton application un menu de navigation moderne en quelques minutes. Un seul contrôle sert de barre latérale ou d'accordéon, se replie en rail d'icônes avec une animation fluide, affiche des badges pour les compteurs non lus et s'utilise entièrement au clavier. Les thèmes clair et sombre sont intégrés, et le formulaire à onglets place les onglets des documents dans une barre de titre thématisée, comme un navigateur web. Un seul modèle et un seul moteur de rendu sans fenêtre pilotent la barre sur FireMonkey, WinForms, WPF, Avalonia, la VCL de Delphi 7 à 13 et C++ Builder, si bien que chaque front end de votre produit se navigue de la même façon.

FireMonkey, WinForms, WPF, Avalonia, VCLDelphi 7 à 13C++ Builder 2007 à 13Édition .NET Community gratuiteInclus dans sgcUI Standard
Démo SidebarApp avec une barre latérale de 8 éléments dans les groupes Workspace et Business, Dashboard sélectionné et deux cartes KPI à droite

Tout ce qu'il faut à un menu d'application

Vingt fonctionnalités qui transforment une liste de pages en un shell de navigation dans lequel vos utilisateurs se repèrent tout de suite.

Disposition et modes

Un seul contrôle couvre les deux styles de navigation des applications métier, ainsi que le rail étroit qui les relie.

Une barre latérale moderne dans un seul composant

Disposition et modes

Une barre latérale moderne dans un seul composant

La plupart des applications métier ont besoin de la même chose sur le bord gauche de la fiche principale : une liste de pages, regroupées par domaine, avec la page courante clairement repérée. Dépose un TsgcVCLNavigationBar sur la fiche, aligne-le à gauche et ajoute les éléments. Les en-têtes de groupe titrent les lignes qui suivent dans une couleur atténuée et ne sont jamais sélectionnés. La ligne sélectionnée reçoit un fond teinté de la couleur d'accentuation et une barre d'accentuation de 3 pixels, pour que l'utilisateur sache toujours où il se trouve. Les états survol et appui, les infobulles et les lignes désactivées sont tous dessinés pour toi, et la barre a l'air finie dès la première exécution.

  • Mode := nbmSidebar est le style par défaut
  • IsGroup transforme un élément en en-tête de groupe
  • ItemHeight et GroupHeight règlent la hauteur des lignes
  • La molette de la souris fait défiler les longues listes et ScrollIntoView affiche n'importe quel élément
  • De droite à gauche pour l'arabe et l'hébreu : les icônes et les libellés échangent leur place, et le retrait, les chevrons, les badges et le bouton de réduction sont en miroir
Lire la rubrique d'aide
Passe en accordéon avec une seule propriété

Disposition et modes

Passe en accordéon avec une seule propriété

Les écrans de paramètres et les consoles d'administration ont souvent plus de sections que l'écran n'en peut afficher. Mets Mode sur nbmAccordion et chaque en-tête de groupe devient une section qui ouvre et ferme les éléments situés dessous, avec un chevron à droite et des enfants en retrait. Par défaut, un seul groupe est ouvert à la fois, ce qui garde un long menu court. Active AllowMultiExpand quand les utilisateurs ont besoin de plusieurs sections ouvertes ensemble. Les éléments, les événements et ton code restent exactement les mêmes. Les éléments placés avant le premier en-tête n'appartiennent à aucun groupe et sont toujours affichés, ce qui convient à une entrée Accueil ou Tableau de bord au-dessus des sections.

  • Mode := nbmAccordion bascule toute la barre
  • Expanded ouvre ou ferme un groupe depuis le code
  • AllowMultiExpand permet de garder plusieurs groupes ouverts
  • Indent règle le retrait des éléments enfants
Lire la rubrique d'aide

Disposition et modes

Repli en rail d'icônes, animé

Les barres latérales larges prennent la place des données que tes utilisateurs sont venus voir. Active Collapsed et la barre passe de sa largeur déployée à un rail d'icônes étroit en 150 ms environ. Dans le rail, seules les icônes sont dessinées, le libellé devient l'infobulle, les en-têtes de groupe deviennent des lignes de séparation et les badges deviennent des points, donc rien d'important n'est perdu. La barre fixe elle-même sa largeur, de sorte que le contenu à côté suit simplement avec alClient. Lie la propriété Collapsed à un bouton hamburger, à un réglage utilisateur ou à la largeur de la fiche, et le rail s'ouvre et se ferme de la même façon en mode barre latérale et en mode accordéon.

  • Collapsed bascule entre les deux largeurs
  • ExpandedWidth (220) et CollapsedWidth (56) en pixels logiques
  • AnimateCollapse active ou désactive l'animation
  • OnCollapsedChange t'informe quand le rail s'ouvre ou se ferme
Lire la rubrique d'aide

Disposition et modes

Pilote tes pages depuis la sélection

Une barre de navigation n'a d'intérêt que si elle change ce que voit l'utilisateur. Clique ou touche un élément activé et la barre le sélectionne, déclenche OnItemClick puis exécute le OnClick de l'élément. OnSelectionChange est l'endroit unique où afficher la page correspondante, par exemple l'onglet d'un TPageControl aux onglets masqués, exactement comme est construite la démo SidebarApp. SelectedIndex lit et définit la page courante depuis le code. Désactive un élément que l'utilisateur ne peut pas encore atteindre, explique pourquoi dans son infobulle, ou masque-le pour les rôles qui ne doivent pas le voir, et la logique de sélection continue de fonctionner.

  • SelectedIndex est la page choisie par l'utilisateur
  • OnSelectionChange change la page ou le cadre
  • OnItemClick sur la barre et OnClick par élément
  • Enabled, Hint et Visible par élément
Lire la rubrique d'aide

Shell de navigation

Une arborescence à plusieurs niveaux avec recherche, des onglets de documents, un fil d'Ariane et une palette de commandes, le tout sur le même modèle indépendant du framework que la barre.

Démo NavigationShellFMX avec une arborescence avec recherche de Mail, Contacts, Calendar et Settings à gauche, quatre onglets dont Work actif et un fil d'Ariane Mail, Folders, Work au-dessus de la page

Shell de navigation

Une arborescence à plusieurs niveaux avec recherche

Les grandes applications dépassent vite une liste plate de pages. Définissez Mode sur nbmTree et la barre devient une arborescence avec autant de niveaux que nécessaire : les éléments restent une collection plate et le Depth d'un élément fixe son niveau, le code qui remplit la barre change donc à peine. Chaque niveau est indenté et chaque parent peut être replié. Activez ShowSearch et une ligne de recherche au-dessus des éléments filtre l'arborescence pendant la saisie, garde ouverts les parents de chaque résultat et met en évidence les caractères correspondants. La correspondance approximative trouve 'Settings' à partir de 'stg'. Le mode arborescence et la recherche font partie de toutes les éditions.

  • Mode := nbmTree et Depth par élément
  • ExpandAll, CollapseAll et Expand(aIndex, aRecursive)
  • Filter avec FilterMode nfmContains ou nfmFuzzy
  • ShowSearch dessine la ligne de recherche, Échap l'efface
  • Droite et Gauche déplient et replient, * déplie une branche entière
Lire la rubrique d'aide

Shell de navigation

Des onglets pour les documents ouverts

Les applications de type document présentent leurs pages ouvertes sous forme d'onglets. TsgcFMXNavigationTabs, TsgcVCLNavigationTabs et les bandeaux WinForms, WPF et Avalonia dessinent des onglets avec une icône, un titre, un bouton de fermeture et un point de modification, plus un bouton de nouvel onglet et une liste de tous les onglets. Quand les onglets ne tiennent pas, TabSizing les réduit ou des boutons de défilement apparaissent. Le Control d'un onglet est la page que le bandeau affiche tant que l'onglet est actif. Dans l'édition Enregistrée, l'utilisateur déplace aussi les onglets par glisser-déposer, épingle ceux qui doivent rester et fait glisser un onglet hors du bandeau pour l'ouvrir dans sa propre fenêtre, et SaveLayout conserve la disposition pour la prochaine exécution.

  • Tabs.AddTab, ActiveIndex et Control par onglet
  • TabSizing, CloseButtons, ShowNewButton, ShowListButton
  • Ctrl+Tab, clic du milieu pour fermer, OnTabClose peut refuser
  • Enregistrée uniquement réorganisation par glisser-déposer, onglets Pinned, OnTabTearOff, SaveLayout et LoadLayout
Lire la rubrique d'aide Réorganisation, onglets épinglés et détachement

Shell de navigation

Un fil d'Ariane qui suit l'arborescence

Les arborescences profondes demandent un moyen de voir où l'on se trouve et de remonter. Le fil d'Ariane présente le chemin comme une rangée de segments, par exemple Mail, Folders, Work. Un clic sur un segment y retourne, et le chevron après un segment liste ses enfants pour aller ailleurs. Liez-le à une barre de navigation et il suit l'élément sélectionné, ou remplissez-le seul à partir d'un Path ou des Segments. Quand le chemin est trop long, les premiers segments se replient dans un bouton de débordement. Dans l'édition Enregistrée, un clic sur la zone vide, F4 ou Ctrl+L transforme le fil d'Ariane en champ de saisie avec le chemin complet, comme la barre d'adresse d'un gestionnaire de fichiers.

  • NavigationBar lie le fil d'Ariane à une barre
  • Path, PathDelimiter et OnGetChildren en autonome
  • OnSegmentClick et AutoTruncate
  • Enregistrée uniquement mode édition avec OnPathEdit
Lire la rubrique d'aide

Shell de navigation Enregistrée uniquement

Une palette de commandes pour chaque commande

Les utilisateurs avancés préfèrent taper plutôt que fouiller dans les menus. Appuyez sur Ctrl+Maj+P et la palette de commandes s'ouvre en haut de la fenêtre : tapez quelques lettres et elle classe chaque commande par correspondance approximative, si bien que 'tgsb' trouve 'Toggle sidebar', avec les caractères correspondants en évidence, la catégorie ou le chemin dans une couleur atténuée et le raccourci à droite. Avec une requête vide, les commandes récemment utilisées viennent en premier. La palette liste ses propres commandes et toutes les sources de commandes que vous ajoutez : les éléments d'une barre de navigation, les boutons d'un ruban ou d'une barre d'outils (Delphi), les actions d'une liste d'actions ou une source de votre cru.

  • Commands.AddCommand avec une catégorie, des mots-clés et le texte du raccourci
  • Sources.AddSource pour une barre, un ruban, une barre d'outils ou une liste d'actions
  • SaveRecent et LoadRecent conservent la liste des récents
  • ICommand sur les commandes en .NET

Édition Enregistrée sur FireMonkey, VCL, WinForms, WPF et Avalonia. L'interface IsgcUICommandSource fait partie de toutes les éditions.

Lire la rubrique d'aide Sources de commandes

Shell de navigation

Un formulaire à onglets avec les onglets dans la barre de titre

Les navigateurs, les terminaux et les éditeurs modernes placent leurs onglets dans la barre de titre de la fenêtre, pour que les documents disposent de toute la hauteur de l'écran. Le formulaire à onglets fait de même pour votre application. Déposez-le sur un formulaire et liez-le au bandeau d'onglets : sgcUI supprime la barre de titre native et dessine une barre de titre thématisée avec l'icône de la fenêtre, les onglets, le bouton de nouvel onglet et les boutons Réduire, Agrandir et Fermer, dans le thème sgcUI de l'application, Classic ou Fluent, clair ou sombre. La fenêtre conserve son ombre, ses bords de redimensionnement et son comportement une fois agrandie, et Windows 11 affiche les dispositions Snap quand le pointeur reste sur le bouton Agrandir. L'espace vide à droite du dernier onglet déplace la fenêtre. Dans l'édition Enregistrée, l'utilisateur glisse un onglet hors du bandeau vers une nouvelle fenêtre et le dépose sur la barre de titre d'une autre fenêtre, comme dans un navigateur web.

  • TsgcVCLNavigationTabbedForm et TsgcFMXNavigationTabbedForm en Delphi et C++ Builder, TsgcWinFormsNavigationTabbedForm, TsgcWpfNavigationTabbedWindow et TsgcAvaloniaNavigationTabbedWindow en .NET
  • Tabs lie le bandeau d'onglets. En Delphi, Notebook déplace le bandeau d'un notebook dans la barre de titre, les pages restant dans le notebook
  • Un double clic sur le bandeau vide agrandit la fenêtre et un clic droit affiche le menu système
  • En WPF et Avalonia, la propriété attachée Tabs de la fenêtre la configure depuis XAML
  • Enregistrée uniquement détachement : TearOffMode déplace un onglet détaché vers la fenêtre sous le pointeur, et ttmNewForm l'ouvre dans une nouvelle fenêtre issue de OnCreateTearOffForm qui suit le pointeur

Le formulaire à onglets est dans toutes les éditions, Community comprise. Le détachement est dans l'édition Enregistrée, comme celui des onglets. Le cadre thématisé exige Windows avec la composition du bureau, et sous FireMonkey il n'est appliqué que sur Windows : sous macOS, Linux, iOS et Android, la barre de titre native reste.

Lire la rubrique d'aide Cadre de la fenêtre Formulaire à onglets .NET

Gestionnaire d'ancrage

Un espace de travail de style IDE : des panneaux d'outils ancrés de tous les côtés, masqués automatiquement ou flottants, une zone de documents à onglets au centre et une disposition enregistrée en JSON.

Site d'ancrage avec Explorer et Search en onglets à gauche, une bande Toolbox masquée automatiquement, quatre onglets de documents, Properties à droite et Output en bas, avec les guides de dépôt et le rectangle d'aperçu sur la moitié droite des documents pendant le glissement de Output

Gestionnaire d'ancrage Enregistrée uniquement

Faites glisser les panneaux vers les guides de dépôt

Les applications qui ont beaucoup de fenêtres d'outils ont besoin d'un espace de travail que l'utilisateur peut organiser. TsgcVCLDockManager, TsgcFMXDockManager, TsgcWinFormsDockManager, TsgcWpfDockManager et TsgcAvaloniaDockManager ancrent les panneaux d'outils sur les quatre côtés de la fiche, en divisions imbriquées avec des séparateurs et en groupes d'onglets. L'utilisateur fait glisser une légende ou un onglet, et des guides de dépôt montrent où il peut atterrir : une boussole sur le groupe situé sous le pointeur divise ce groupe sur un côté ou y ajoute le panneau en onglet, les guides de bord l'ancrent sur un bord du site entier, et un rectangle d'aperçu à la couleur d'accentuation montre la place qu'il prendra. Échap annule le glissement. La page Ancrage pour Avalonia montre TsgcAvaloniaDockManager en XAML et C#.

  • Panels.Add avec Name, Caption, Placement et DockSize, et votre propre contrôle comme Control
  • DockPanel, ClosePanel, ShowPanel et ActivatePanel en code
  • OnPanelDock peut refuser un ancrage, un flottement ou un changement de masquage automatique
  • Boutons fermer, épingler, agrandir et menu sur chaque légende
Lire la rubrique d'aide Glisser-déposer

Gestionnaire d'ancrage Enregistrée uniquement

Masquez automatiquement les panneaux dans les bandes latérales

Les panneaux d'outils dont on n'a besoin que de temps en temps ne doivent pas occuper de la place en permanence. Le bouton épingler d'une légende masque automatiquement son groupe : les panneaux deviennent des onglets sur une fine bande au bord de la fiche, et le survol ou le clic sur un onglet fait glisser le panneau par-dessus le contenu. Il se replie quand l'utilisateur travaille ailleurs, et le bouton épingler du panneau volant ancre à nouveau le groupe, du même côté et à la même taille qu'avant. Sous iOS et Android, un toucher ouvre le panneau volant.

  • Model.SetAutoHide(aPanel, True) en code
  • AutoHideDelay définit le délai de survol, 400 ms par défaut
  • CanAutoHide par panneau, les documents ne se masquent jamais automatiquement
  • Alt+F7 et la palette de commandes ouvrent le panneau volant d'un panneau masqué automatiquement
Lire la rubrique d'aide

Gestionnaire d'ancrage Enregistrée uniquement

Fenêtres flottantes sur le bureau

Un panneau déposé en dehors des guides flotte dans une fenêtre à lui, que l'utilisateur déplace vers un autre endroit ou un autre moniteur. Une fenêtre flottante contient une disposition comme le site d'ancrage, de sorte que d'autres panneaux peuvent y être ancrés côte à côte ou en onglets, et un double clic sur sa légende l'ancre à nouveau. Les fenêtres flottantes sont des fenêtres d'outils sans bordure appartenant à la fiche et absentes de la barre des tâches, avec une légende dessinée et une bordure qui les redimensionne, et chacune utilise l'échelle de son propre moniteur. Elles fonctionnent dans les applications de bureau VCL, WinForms, WPF, Avalonia et FireMonkey sous Windows et macOS. Sous iOS et Android, les panneaux ne flottent pas et un glissement n'affiche que les guides.

  • FloatPanel(aPanel, aLeft, aTop) en code
  • AllowFloating sur le gestionnaire d'ancrage et CanFloat par panneau
  • Placement := dplFloat démarre un panneau flottant à FloatWidth sur FloatHeight
  • Une fenêtre flottante hors de la zone de travail visible revient dedans au chargement d'une disposition
Lire la rubrique d'aide

Gestionnaire d'ancrage Enregistrée uniquement

Une zone de documents à onglets au centre

Le centre du site d'ancrage contient les documents : un ou plusieurs groupes de documents, chacun avec une barre d'onglets en haut. La barre fonctionne comme les onglets de navigation, avec réorganisation par glissement, documents épinglés en premier, boutons de fermeture, un point de modification, un clic du milieu pour fermer, Ctrl+Tab et la liste de tous les onglets. Faites glisser un onglet de document sur un bras latéral de la boussole pour diviser la zone en deux groupes de documents, côte à côte ou empilés, détachez-le pour le faire flotter, ou double-cliquez dessus pour agrandir son groupe. Le bouton de nouvel onglet déclenche OnNewDocument, où votre code crée le document suivant.

  • Kind := dpkDocument, avec Pinned et Modified par panneau
  • DocumentTabSizing, DocumentCloseButtons, DocumentShowNewButton et DocumentShowListButton
  • Ctrl+F6 parcourt les documents, OnActiveDocumentChange signale le document actif
  • OnPanelClose peut garder un document ouvert
Lire la rubrique d'aide

Gestionnaire d'ancrage Enregistrée uniquement

Enregistrez la disposition et restaurez-la

Les utilisateurs s'attendent à retrouver leurs panneaux là où ils les ont laissés. SaveLayout écrit tout l'agencement en JSON compact : les divisions et leurs tailles, les groupes et leurs panneaux actifs, les groupes masqués automatiquement de chaque côté, les fenêtres flottantes avec leurs limites, le groupe agrandi et les panneaux masqués. LoadLayout le restaure au démarrage suivant. Le texte est le même en Delphi et en .NET, un seul fichier de disposition sert donc aux deux. Un panneau que la disposition nomme mais que la fiche n'a pas encore, comme un document qui était ouvert, arrive dans OnRestorePanel, où votre code crée son contenu ou l'abandonne.

  • SaveLayout, SaveLayoutToFile et SaveLayoutToStream
  • LoadLayout, LoadLayoutFromFile et LoadLayoutFromStream renvoient False sur un texte étranger et ne changent rien
  • OnRestorePanel pour les panneaux créés à l'exécution
  • Une commande « Window » par panneau transforme la palette de commandes en sélecteur de fenêtres

Édition Enregistrée sous FireMonkey, VCL, WinForms, WPF et Avalonia, avec prise en charge de C++ Builder. Clavier, UI Automation, écriture de droite à gauche, thèmes et haute résolution inclus.

Lire la rubrique d'aide

Des éléments qui informent

Les lignes portent plus qu'un libellé : une icône, un compteur et un lien vers la logique que tu as déjà écrite.

Des badges pour les compteurs non lus

Des éléments qui informent

Des badges pour les compteurs non lus

Les utilisateurs doivent voir qu'un élément demande leur attention avant d'ouvrir la page. Donne un Badge à un élément, par exemple un compteur de non lus ou le mot Nouveau, et la barre le dessine en pilule de la couleur d'accentuation à droite de la ligne, avec un texte noir ou blanc, selon le plus lisible. Définis-le depuis le code chaque fois que la valeur change et la barre se redessine d'elle-même. Dans le rail replié, le badge devient un point sur l'icône. Comme le badge est un simple texte, la même propriété couvre les compteurs, les libellés courts et les mots d'état sans code de dessin personnalisé.

  • Badge est un texte court par élément
  • Un Badge vide ne dessine rien
  • La pilule utilise l'accentuation du thème ou ton AccentColor
  • À combiner avec Hint pour expliquer le compteur
Lire la rubrique d'aide
Icônes depuis ta liste d'images ou un glyphe

Des éléments qui informent

Icônes depuis ta liste d'images ou un glyphe

Chaque ligne a un emplacement d'icône. Pointe la barre vers la liste d'images que tu utilises déjà et définis ImageIndex par élément, et les images masquées ou 32 bits sont converties une seule fois puis mises en cache jusqu'à ce que la liste change. Pas encore de liste d'images ? Définis plutôt un Glyph, une lettre ou un court symbole qui suit les couleurs du thème, comme le font les démos. Un élément désactivé dessine son image à 40 pour cent d'opacité, pour que l'état soit clair d'un coup d'œil. Tu peux mélanger les deux : les éléments avec un index d'image affichent l'image et les autres se rabattent sur leur glyphe, ce qui permet d'ajouter les icônes progressivement.

  • Images et ImageIndex pour les listes d'images
  • Glyph pour une lettre ou un symbole sans images
  • VCL dessine les images à leur propre taille
  • Listes d'images FireMonkey à partir de Delphi XE8
Lire la rubrique d'aide

Des éléments qui informent Enregistrée uniquement

Relie les éléments à tes TAction

Les applications construites sur une TActionList ont déjà leurs commandes, leurs libellés et leurs règles d'activation au même endroit. Relie un élément à n'importe quelle TAction VCL ou FireMonkey via sa propriété Action et ses Caption, Enabled, Visible, Hint et ImageIndex suivent l'action. Un clic exécute l'action avec la barre comme ActionComponent, et OnUpdate s'exécute en temps libre, donc un élément se grise dès que son action est désactivée. En .NET, Command et CommandParameter font le même travail. Une seule TActionList peut piloter le menu, la barre d'outils et les raccourcis clavier de la fiche.

  • Action relie un élément à n'importe quelle TBasicAction
  • Le OnClick d'un élément s'exécute à la place de l'action
  • Compilé sous SGC_NAVIGATION_ACTIONS
  • .NET : Command et CommandParameter avec ICommand

Community : affecte le OnClick de l'élément ou le OnItemClick de la barre à la place d'une action.

Lire la rubrique d'aide

Clavier, thèmes et rendu

Les détails qui donnent à la barre un aspect natif et la gardent cohérente avec le reste de ton application.

Navigation d'abord au clavier

Clavier, thèmes et rendu

Les utilisateurs avancés changent de page sans souris, et les audits d'accessibilité l'exigent. La barre prend le focus avec Tab et déplace une ligne ayant le focus parmi les éléments visibles et activés : Haut et Bas avancent, Début et Fin sautent, Entrée ou Espace active. Dans l'accordéon, Gauche replie un groupe et Droite le déploie. Le rectangle de focus en pointillés n'apparaît que lorsque le clavier est utilisé, et le focus reste distinct de la page sélectionnée. Les mêmes touches fonctionnent dans la barre FireMonkey via CanFocus, donc les utilisateurs de bureau retrouvent le même comportement sur toutes les plateformes.

  • TabStop est activé par défaut pour la barre VCL
  • FocusedIndex du modèle est la ligne du clavier
  • SelectedIndex reste la page choisie
  • Les infobulles affichent le libellé dans le rail replié
Lire la rubrique d'aide
Clair, sombre et ta couleur d'accentuation

Clavier, thèmes et rendu

Clair, sombre et ta couleur d'accentuation

Un menu qui ignore le thème de l'application paraît plaqué. Theme définit les couleurs de surface, de bordure, de texte, d'en-tête de groupe, de survol et d'accentuation à partir des jetons partagés de sgcUICore, donc une barre et un sgcDashboard avec le même Theme s'accordent exactement. AccentColor remplace l'accentuation par la couleur de ta marque pour la barre de sélection, le rectangle de focus et les badges. Une barre hébergée dans une tuile de tableau de bord suit d'elle-même le thème du tableau de bord. Change le thème à l'exécution et la barre se redessine aussitôt, prête pour un interrupteur de mode sombre dans ta page de paramètres.

  • Theme : utDefault (par défaut, suit le thème de l'application), utLight ou utDark
  • AccentColor comme valeur $AARRGGBB, 0 conserve l'accentuation du thème
  • Les mêmes jetons que tous les produits sgcUI
  • Les tuiles du tableau de bord transmettent leur thème à la barre
Lire la rubrique d'aide
Dessine la barre sans fenêtre

Clavier, thèmes et rendu

Dessine la barre sans fenêtre

La documentation, les tests visuels et les back-ends web ont parfois besoin d'une image du menu, pas du menu lui-même. Le moteur de rendu de sgcNavigation_Render dessine un TsgcNavigationModel sans fenêtre et sans VCL ni FireMonkey, donc un programme console, un service ou un serveur produit la même barre en PNG ou en SVG. L'unité se compile sur toutes les plateformes, Linux64 compris, et un paramètre d'échelle donne des images nettes pour les écrans haute densité. Passe ta liste d'images au moteur de rendu et l'image exportée affiche les mêmes icônes que l'application en cours d'exécution.

  • sgcNavigationSaveToPNG écrit un fichier ou un flux PNG
  • sgcNavigationSaveToSVG écrit la même barre en SVG
  • sgcNavigationRender dessine sur n'importe quel canevas sgcUICore
  • Largeur et hauteur en pixels logiques, multipliées par l'échelle
Lire la rubrique d'aide

Découvre sgcNavigation en action

sgcNavigation dans les démos de la suite sgcUI : des applications complètes qui fonctionnent hors ligne avec des données simulées intégrées.

Qui construit avec sgcNavigation

Une structure moderne pour les applications ERP et d'administration

Tu as des dizaines de fiches existantes et une fenêtre principale qui les ouvre encore depuis une barre de menus. Place une barre latérale à gauche, un élément par domaine, et laisse OnSelectionChange changer les onglets d'un TPageControl aux onglets masqués. Les badges montrent les commandes en attente ou les messages non lus, et le rail d'icônes rend leur espace aux fiches. Lance SidebarApp pour voir ce modèle fonctionner avec une page sgcDashboard.

  • Mode barre latérale
  • Badges
  • Repli en rail d'icônes
Lance la démo SidebarApp

Écrans de paramètres et consoles d'administration

Les écrans de configuration regroupent des dizaines de pages sous quelques titres comme Sales, Inventory et Admin. L'accordéon garde une section ouverte à la fois, ou plusieurs avec AllowMultiExpand, et les liens d'action réutilisent les commandes et les règles d'activation de ta TActionList. Les utilisateurs au clavier parcourent les sections avec les flèches. La démo Accordion montre trois groupes, un interrupteur de déploiement et un journal de clics.

  • Mode accordéon
  • Liens d'action
  • Navigation au clavier
Lance la démo Accordion

La même navigation sur toutes les plateformes

Une application FireMonkey qui tourne sous Windows, macOS, iOS et Android ne devrait pas avoir besoin d'un menu différent sur chacune. TsgcFMXNavigationBar a les mêmes éléments, modes et événements que la barre VCL, et les barres .NET pour WinForms, WPF et Avalonia suivent les mêmes noms. Les équipes qui livrent une application de bureau Delphi et un outil .NET gardent un seul modèle mental. SidebarFMX est la version FireMonkey de la démo de la barre latérale.

  • Barre FireMonkey
  • Thèmes
  • Barres .NET
Lance la démo SidebarFMX

Une barre de navigation en quelques lignes

La même API en FireMonkey, C#, Delphi VCL et C++ Builder : une barre en accordéon avec des groupes, une pastille, un élément désactivé et un bouton Collapse. Les onglets FireMonkey et C# ajoutent un bandeau d'onglets et une palette de commandes.

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;

Une fenêtre de style navigateur : TsgcVCLNavigationTabbedForm déplace le bandeau d'onglets dans une barre de titre thématisée.

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

Lance les démos de sgcNavigation

Les démos NavigationShell et DockingShell sont fournies pour FireMonkey, VCL, WinForms, WPF et Avalonia. La démo de barre latérale est fournie pour FireMonkey, et les démos SidebarApp et Accordion sont fournies dans l'édition .NET sous forme de projets WinForms, WPF et Avalonia, et pour Delphi VCL et C++ Builder.

NavigationShellFMX

Enregistrée uniquement NavigationShellFMX

Un shell de navigation complet pour FireMonkey, pour Delphi uniquement : une arborescence avec une ligne de recherche à gauche, un onglet par page ouverte, un fil d'Ariane qui suit l'arborescence et une palette de commandes (Ctrl+Maj+P) qui liste les éléments de la barre et une liste d'actions. Bascules de thème sombre et de droite à gauche incluses. Elle utilise la palette, donc elle demande l'édition Enregistrée ou l'essai.

Enregistrée uniquement NavigationShell

Le même shell pour la VCL, avec un petit ruban en haut dont les commandes apparaissent aussi dans la palette de commandes avec leur chemin 'Tab > Group', à côté des éléments de l'arborescence et des actions d'une liste d'actions. Bascules de thème sombre et de droite à gauche incluses.

Enregistrée uniquement NavigationShell pour .NET

Le shell de navigation dans l'édition .NET : NavigationShell pour WinForms, NavigationShellWpf et NavigationShellAvalonia, chacun avec l'arborescence et la recherche, les onglets, le fil d'Ariane et la palette de commandes.

DockingShell

Enregistrée uniquement DockingShell et DockingShellFMX

Un shell de style IDE construit sur le gestionnaire d'ancrage, pour la VCL et pour FireMonkey : un arbre de barre de navigation comme Explorer à gauche, Properties à droite, Output masqué automatiquement en bas et des documents mémo avec des onglets épinglés et modifiés au centre. La palette de commandes liste une commande Window par panneau, un sélecteur de thème et un bouton Reset layout sont inclus, et la disposition est enregistrée en JSON à la fermeture puis chargée au démarrage suivant.

Enregistrée uniquement DockingShell pour .NET

Le shell d'ancrage dans l'édition .NET : DockingShell pour WinForms, DockingShellWpf et DockingShellAvalonia, chacun avec des panneaux ancrés, masqués automatiquement et flottants, la zone de documents et la disposition enregistrée.

TabbedForm et TabbedFormFMX

Une fenêtre de style navigateur avec les onglets dans la barre de titre, pour la VCL et pour FireMonkey, avec des jumeaux C++ Builder : un bouton de nouvel onglet, des boutons de fermeture et un sélecteur de thème avec clair, sombre, Fluent clair et Fluent sombre. Glissez un onglet hors du bandeau et il s'ouvre dans une nouvelle fenêtre qui suit le pointeur, puis déposez-le sur la barre de titre d'une autre fenêtre. Le détachement exige l'édition Enregistrée. Dans l'édition .NET, la démo est fournie sous les noms TabbedForm pour WinForms, TabbedFormWpf et TabbedFormAvalonia.

SidebarFMX

La démo de la barre latérale construite avec TsgcFMXNavigationBar pour FireMonkey, pour Delphi uniquement. Les mêmes éléments, modes et événements que la version VCL, prête pour Windows, macOS et les cibles mobiles.

SidebarApp

SidebarApp

Une barre latérale qui pilote un contrôle de pages aux onglets masqués, avec des icônes, un badge, un élément désactivé, un bouton Collapse, une liste de thèmes et une page KPI sgcDashboard. Elle prouve le modèle de structure d'application de bout en bout.

Accordion

Enregistrée uniquement Accordion

Trois groupes, Sales, Inventory et Admin, un interrupteur AllowMultiExpand, des liens d'action et un journal de clics. Elle utilise des liens d'action, donc elle demande l'édition Enregistrée ou l'essai.

Démos compilées

Des exécutables prêts à lancer pour chaque produit sgcUI, rien à installer.

Télécharger sgcUI_bin.zip →

Guide Getting Started

Cinq démos QuickStart pour Delphi (VCL) sont livrées dans Demos\Navigation\Delphi\00.QuickStart. Le guide PDF les parcourt pas à pas : une première barre de navigation, un menu construit dans le code, les onglets de documents, les thèmes et les styles, et un petit client de messagerie.

Télécharger le guide (PDF, en anglais) →

sgcNavigation ou les contrôles VCL de RAD Studio 13.2 ?

RAD Studio 13.2 Florence a ajouté deux contrôles VCL, TNavigationView et TTabView. Si votre application est uniquement VCL et que vous compilez avec la 13.2 ou une version ultérieure, ils constituent un bon choix intégré. sgcNavigation apporte de la valeur quand la même navigation doit tourner sur FireMonkey et .NET, quand vous compilez avec des versions plus anciennes de Delphi, et quand vous avez besoin d'un fil d'Ariane, d'une palette de commandes ou d'une arborescence avec recherche.

TNavigationView est une liste verticale d'éléments avec des modes normal et compact, des images, du texte sur plusieurs lignes, le défilement et la réorganisation par glisser-déposer, et il lie ses éléments à un contrôle multipage, un frame ou un TCardPanel. TTabView est une variante moderne de TTabSet dont les onglets accueillent des fiches ou d'autres contrôles, avec une image, du texte sur plusieurs lignes et un bouton de fermeture sur chaque onglet, un bouton pour ajouter un onglet, une liste déroulante de tous les onglets et des boutons de défilement. Les deux sont bien conçus et suivent le modèle de programmation de la VCL, donc pour un nouveau projet VCL sur la 13.2 ils méritent un coup d'œil.

sgcNavigation conserve un seul modèle indépendant du framework et un seul moteur de rendu sans fenêtre derrière chaque hôte. La barre, ainsi que les onglets, le fil d'Ariane, l'arborescence à plusieurs niveaux et la palette de commandes qui la rejoignent dans cette version, se comportent de la même façon sur FireMonkey, WinForms, WPF, Avalonia et la VCL de Delphi 7 à 13, si bien qu'un produit avec un front end de bureau, un mobile et un .NET se navigue partout de la même manière.

SujetsgcNavigationTNavigationView et TTabView (VCL, RAD Studio 13.2)
FrameworksFireMonkey, WinForms, WPF, Avalonia et VCLVCL
Versions de Delphi et de C++ BuilderDelphi 7 à 13 (VCL), Delphi XE6 à 13 (FireMonkey), C++ Builder 2007 à 13RAD Studio 13.2 et versions ultérieures
Hôtes .NETWinForms, WPF et Avalonia sur .NET Framework 4.7.2, .NET 8, 9 et 10Sans objet, ce sont des contrôles VCL
Rendu sans fenêtre sous LinuxSortie PNG et SVG sur Linux64 à partir de Delphi 10.2Non décrit dans la documentation de la 13.2
Modèle partagé entre frameworksUn modèle indépendant du framework, avec les mêmes noms en Delphi et en .NETNon décrit dans la documentation de la 13.2
Fil d'ArianeBarre de fil d'Ariane qui peut suivre le nœud sélectionné de la barreNon décrit dans la documentation de la 13.2
Palette de commandesPalette au clavier avec recherche approximative sur les commandes, les éléments et les actionsNon décrit dans la documentation de la 13.2
Recherche dans l'arborescenceArborescence à plusieurs niveaux avec une ligne de recherche qui garde visibles les parents de chaque résultatNon décrit dans la documentation de la 13.2

Les détails de TNavigationView et TTabView proviennent des notes de RAD Studio 13 Florence Release 2 d'Embarcadero.

Où sgcNavigation est inclus

sgcNavigation est dans toutes les éditions sgcUI, à partir de Standard, et il est aussi vendu seul. sgcNavigation est également inclus dans le pack All-Access.

sgcNavigation, package seul

€149 / développeur, code source complet, 1 an de mises à jour.

Acheter sgcNavigation → Voir les tarifs →

sgcUI Standard

sgcNavigation, sgcGrid, sgcToolbar et sgcEditors, à partir de €380.

Voir Standard →

sgcUI Professional

Standard plus sgcCharts, sgcDashboard et sgcGauges, à partir de €529.

Voir Professional →

sgcUI Enterprise

Les 17 produits sgcUI, à partir de €699.

Voir Enterprise →

L'édition Community gratuite (esegece.sgcNavigation.Community sur NuGet) offre la barre avec le mode arborescence et la recherche, les onglets et le fil d'Ariane de base, le formulaire à onglets avec les onglets dans la barre de titre et l'interface de sources de commandes. L'édition Enregistrée ajoute la palette de commandes, la réorganisation des onglets, les onglets épinglés, le détachement et la disposition d'onglets enregistrée, le mode édition du fil d'Ariane, le gestionnaire d'ancrage et les liens d'action des éléments.

FonctionnalitéCommunity (gratuite)Enregistrée
Modes barre latérale et accordéon✓✓
Repli animé en rail d'icônes✓✓
Icônes, glyphes et badges✓✓
Navigation au clavier✓✓
Thèmes clair et sombre, couleur d'accentuation✓✓
Rendu PNG et SVG sans interface✓✓
Mode arborescence à plusieurs niveaux et recherche✓✓
Onglets : dimensionnement, boutons de fermeture, boutons de liste et de nouvel onglet, défilement, clavier✓✓
Formulaire à onglets : les onglets dans une barre de titre thématisée✓✓
Fil d'Ariane : segments, chevrons, débordement, lien vers une barre✓✓
Sources de commandes (IsgcUICommandSource)✓✓
Palette de commandes−✓
Réorganisation des onglets par glisser-déposer, onglets épinglés, détachement, disposition d'onglets enregistrée−✓
Détachement du formulaire à onglets dans une nouvelle fenêtre−✓
Mode édition du fil d'Ariane−✓
Gestionnaire d'ancrage−✓
Liens d'action (Delphi) et Command (.NET)−✓

Frameworks et plateformes pris en charge

Composants de sgcNavigation

ComposantCible
TsgcFMXNavigationBarDelphi et C++ Builder, FireMonkey (sgcNavigation_FMX)
TsgcWinFormsNavigationBar.NET, WinForms
TsgcWpfNavigationBar.NET, WPF
TsgcAvaloniaNavigationBar.NET, Avalonia
TsgcVCLNavigationBarDelphi et C++ Builder, VCL (sgcNavigation_VCL)
TsgcFMXNavigationTabs, TsgcFMXNavigationBreadcrumb, TsgcFMXCommandPaletteDelphi et C++ Builder, FireMonkey (sgcNavigation_Tabs_FMX, sgcNavigation_Palette_FMX)
TsgcWinFormsNavigationTabs, TsgcWpfNavigationTabs, TsgcAvaloniaNavigationTabs.NET, WinForms, WPF et Avalonia, avec les classes Breadcrumb et CommandPalette correspondantes
TsgcVCLNavigationTabs, TsgcVCLNavigationBreadcrumb, TsgcVCLCommandPaletteDelphi et C++ Builder, VCL (sgcNavigation_Tabs_VCL, sgcNavigation_Palette_VCL)
TsgcVCLNavigationTabbedForm, TsgcFMXNavigationTabbedFormDelphi et C++ Builder, VCL et FireMonkey (sgcNavigation_TabbedForm_VCL, sgcNavigation_TabbedForm_FMX), la barre de titre thématisée sous Windows
TsgcWinFormsNavigationTabbedForm, TsgcWpfNavigationTabbedWindow, TsgcAvaloniaNavigationTabbedWindow.NET, WinForms, WPF et Avalonia
TsgcVCLDockManager, TsgcFMXDockManagerDelphi et C++ Builder, VCL et FireMonkey (sgcNavigation_Dock_VCL, sgcNavigation_Dock_FMX), édition Enregistrée
TsgcWinFormsDockManager, TsgcWpfDockManager, TsgcAvaloniaDockManager.NET, WinForms, WPF et Avalonia, édition Enregistrée
TsgcNavigationItem, TsgcNavigationItems, TsgcNavigationModelModèle indépendant du framework (sgcNavigation_Model)
CibleComposantPlateformes
Delphi XE6 à 13, FireMonkeyTsgcFMXNavigationBarWindows, macOS, iOS, Android et Linux (FMXLinux)
.NET Framework 4.7.2, .NET 8, 9 et 10TsgcWinFormsNavigationBar, barres WPF et AvaloniaWinForms, WPF et Avalonia
Delphi 7 à 13, VCLTsgcVCLNavigationBarWin32 et Win64
C++ Builder 2007 à 13TsgcVCLNavigationBar, TsgcFMXNavigationBarEn-têtes .hpp générés et bibliothèques statiques
Delphi 10.2 à 13, indépendant du frameworkModèle et moteur de rendu PNG et SVG sans interfaceLinux64, par exemple pour dessiner une barre sur un serveur

Foire aux questions

Si votre application est uniquement VCL, TNavigationView et TTabView de RAD Studio 13.2 sont un bon choix intégré et nous les recommandons volontiers. sgcNavigation convient mieux quand la même navigation doit aussi tourner sur FireMonkey sous macOS, iOS, Android ou Linux, ou dans une application WinForms, WPF ou Avalonia, quand une partie de votre équipe compile encore avec un Delphi ou un C++ Builder plus ancien, ou quand vous voulez un fil d'Ariane, une palette de commandes ou une arborescence à plusieurs niveaux avec recherche au-dessus de la barre latérale. Le modèle et le moteur de rendu PNG et SVG sans fenêtre sont partagés par tous les hôtes. Voir Choisir pour un tableau comparatif.

Oui, dans l'édition Enregistrée. TsgcFMXCommandPalette, TsgcVCLCommandPalette et les palettes WinForms, WPF et Avalonia s'ouvrent avec Ctrl+Maj+P, classent les commandes par correspondance approximative pendant la saisie et affichent d'abord les commandes récemment utilisées. En plus de ses propres commandes, la palette liste toutes les sources de commandes que vous ajoutez : les éléments d'une barre de navigation, les commandes d'un ruban ou d'une barre d'outils sous Delphi, les actions d'une liste d'actions, ou une source de votre cru via l'interface IsgcUICommandSource. En .NET, une commande peut porter un ICommand. Voir la palette de commandes.

Les deux. La propriété Mode bascule entre nbmSidebar et nbmAccordion sur le même contrôle, avec les mêmes éléments et les mêmes événements, donc tu peux changer d'avis tard dans le projet ou proposer les deux styles comme préférence utilisateur. Chaque mode se replie aussi en rail d'icônes.

Oui. Gère OnSelectionChange et affiche la page qui correspond à SelectedIndex, par exemple l'onglet d'un TPageControl aux onglets masqués, ou crée un cadre à la demande. La démo SidebarApp est construite exactement ainsi et héberge une page KPI sgcDashboard.

Oui. TsgcFMXNavigationBar cible Windows, macOS, iOS, Android et Linux (FMXLinux) à partir de Delphi XE6, avec les mêmes éléments, modes et événements que la barre VCL. Les listes d'images FireMonkey demandent Delphi XE8 ou plus récent ; les versions plus anciennes utilisent le Glyph de chaque élément.

La palette de commandes, la réorganisation des onglets par glissement, les onglets épinglés et le détachement, le mode édition du fil d'Ariane, le gestionnaire d'ancrage et les liens d'action des éléments, qui en .NET sont les propriétés Command et CommandParameter. Utilise à la place des liens d'action le OnClick de l'élément ou le OnItemClick de la barre. Toutes les autres fonctionnalités, dont l'arborescence avec recherche, les onglets, le rail d'icônes, les badges, les thèmes et le rendu sans interface, sont dans Community. Voir Éditions.

Non. Le portage .NET n'a ni verbes de concepteur ni éditeur de collection, donc les éléments ne sont pas sérialisés et tu les ajoutes dans le code, généralement dans le constructeur de la fiche ou de la fenêtre. En Delphi et C++ Builder, la collection Items s'édite à la conception avec l'éditeur de collection standard.

Oui. Toutes les tailles sont des pixels logiques multipliés par l'échelle du moniteur, donc les lignes, les icônes et les badges sont nets à toute densité. En WinForms, les largeurs et hauteurs s'adaptent avec DPI / 96 comme en VCL, et en WPF et Avalonia ce sont des unités indépendantes de l'appareil.

Oui. sgcNavigationSaveToPNG et sgcNavigationSaveToSVG dessinent une barre à partir de son modèle sans fenêtre et sans VCL ni FireMonkey, y compris sous Linux64 à partir de Delphi 10.2. Utilise-les pour la documentation, les tests de régression visuelle ou une page web qui montre le menu de ton application.

Non. Sous iOS et Android, les panneaux de TsgcFMXDockManager s'ancrent, se divisent, se mettent en onglets et se masquent automatiquement, mais ils ne flottent pas : AllowFloating est forcé à False, un toucher ouvre un panneau masqué automatiquement car il n'y a pas de survol, un appui long ouvre le menu du panneau et un glissement n'affiche que les guides de dépôt. Les fenêtres flottantes fonctionnent dans les applications de bureau VCL, WinForms, WPF, Avalonia et FireMonkey sous Windows et macOS. Une disposition enregistrée sur le bureau se charge quand même sur un téléphone : les panneaux de ses fenêtres flottantes gardent leur placement initial. Voir Fenêtres flottantes.

Aide de sgcNavigation

3,000+Développeurs
20+Ans
761+Composants
30+Intégrations d'API
5Plateformes
Garantie satisfait ou remboursé de 30 joursPas satisfait ? Demandez un remboursement intégral dans les 30 jours suivant l'achat. Voir la politique de remboursement

Essaie sgcNavigation dès aujourd'hui

L'essai sgcUI inclut sgcNavigation et tous les autres produits sgcUI.