FireMonkey, .NET & Delphi 7 do 13 Część sgcUI

sgcNavigation, ten sam pasek nawigacji dla FireMonkey, .NET i Delphi 7 do 13

Dodaj do aplikacji nowoczesne menu nawigacyjne w kilka minut. Jedna kontrolka działa jako panel boczny lub akordeon, zwija się do paska ikon z płynną animacją, pokazuje plakietki z liczbą nieprzeczytanych elementów i w pełni obsługuje klawiaturę. Jasny i ciemny motyw są wbudowane, a formularz z kartami umieszcza karty dokumentów w pasku tytułu z motywem, jak w przeglądarce internetowej. Jeden model i jeden bezokienkowy renderer napędzają pasek w FireMonkey, WinForms, WPF, Avalonia, VCL z Delphi 7 do 13 oraz C++ Builder, więc wszystkie interfejsy Twojego produktu nawigują tak samo.

FireMonkey, WinForms, WPF, Avalonia, VCLDelphi 7 do 13C++ Builder 2007 do 13Bezpłatna edycja .NET CommunityW sgcUI Standard
Demo SidebarApp z panelem bocznym z 8 pozycjami w grupach Workspace i Business, zaznaczonym Dashboard i dwiema kartami KPI po prawej

Wszystko, czego potrzebuje menu aplikacji

Dwadzieścia funkcji, które zamieniają listę stron w strukturę nawigacji, w której użytkownicy od razu się orientują.

Układ i tryby

Jedna kontrolka obsługuje oba style nawigacji używane w aplikacjach biznesowych oraz wąski pasek ikon pomiędzy nimi.

Nowoczesny panel boczny aplikacji w jednym komponencie

Układ i tryby

Nowoczesny panel boczny aplikacji w jednym komponencie

Większość aplikacji biznesowych potrzebuje tego samego na lewej krawędzi głównego formularza: listy stron, pogrupowanej według obszarów, z wyraźnie oznaczoną bieżącą stroną. Upuść TsgcVCLNavigationBar na formularz, wyrównaj go do lewej i dodaj pozycje. Nagłówki grup opisują wiersze poniżej stonowanym kolorem i nigdy nie są zaznaczane. Zaznaczony wiersz dostaje tło w kolorze akcentu i 3-pikselowy pasek akcentu, więc użytkownicy zawsze widzą, gdzie są. Stany najechania i naciśnięcia, podpowiedzi i wyłączone wiersze są rysowane za Ciebie, dzięki czemu pasek wygląda na gotowy już przy pierwszym uruchomieniu.

  • Mode := nbmSidebar to domyślny styl
  • IsGroup zmienia pozycję w nagłówek grupy
  • ItemHeight i GroupHeight ustawiają wysokość wierszy
  • Kółko myszy przewija długie listy, a ScrollIntoView pokazuje dowolną pozycję
  • Od prawej do lewej dla arabskiego i hebrajskiego: ikony i podpisy zamieniają się miejscami, a wcięcie, szewrony, plakietki i przycisk zwijania są odbite lustrzanie
Przeczytaj temat pomocy
Przełącz na akordeon jedną właściwością

Układ i tryby

Przełącz na akordeon jedną właściwością

Ekrany ustawień i konsole administracyjne mają często więcej sekcji, niż mieści się na ekranie. Ustaw Mode na nbmAccordion, a każdy nagłówek grupy stanie się sekcją, która otwiera i zamyka pozycje poniżej, ze strzałką po prawej i wciętymi elementami podrzędnymi. Domyślnie otwarta jest tylko jedna grupa naraz, co skraca długie menu. Ustaw AllowMultiExpand, gdy użytkownicy potrzebują kilku otwartych sekcji jednocześnie. Pozycje, zdarzenia i Twój kod pozostają dokładnie takie same. Pozycje umieszczone przed pierwszym nagłówkiem nie należą do żadnej grupy i są zawsze widoczne, co pasuje do wpisu Home lub Dashboard nad sekcjami.

  • Mode := nbmAccordion przełącza cały pasek
  • Expanded otwiera lub zamyka grupę z kodu
  • AllowMultiExpand pozwala zostawić otwartych kilka grup
  • Indent ustawia wcięcie elementów podrzędnych
Przeczytaj temat pomocy

Układ i tryby

Zwijanie do paska ikon, z animacją

Szerokie panele boczne zabierają miejsce danym, dla których użytkownicy przyszli. Ustaw Collapsed, a pasek zwinie się z pełnej szerokości do wąskiego paska ikon w około 150 ms. Na pasku rysowane są tylko ikony, podpis staje się podpowiedzią, nagłówki grup zamieniają się w linie oddzielające, a plakietki w kropki, więc nic ważnego nie ginie. Pasek sam ustawia swoją szerokość, więc zawartość obok po prostu podąża za nim z alClient. Powiąż właściwość Collapsed z przyciskiem hamburgera, ustawieniem użytkownika lub szerokością formularza, a pasek otwiera się i zamyka tak samo w trybie panelu bocznego i akordeonu.

  • Collapsed przełącza między dwiema szerokościami
  • ExpandedWidth (220) i CollapsedWidth (56) w pikselach logicznych
  • AnimateCollapse włącza lub wyłącza animację
  • OnCollapsedChange informuje, kiedy pasek się otwiera lub zamyka
Przeczytaj temat pomocy

Układ i tryby

Steruj stronami na podstawie zaznaczenia

Pasek nawigacji jest użyteczny tylko wtedy, gdy zmienia to, co widzi użytkownik. Kliknij lub dotknij włączonej pozycji, a pasek zaznaczy ją, wywoła OnItemClick, a potem OnClick pozycji. OnSelectionChange to jedyne miejsce, w którym pokazujesz odpowiednią stronę, na przykład kartę TPageControl z ukrytymi kartami, dokładnie tak jest zbudowane demo SidebarApp. SelectedIndex odczytuje i ustawia bieżącą stronę z kodu. Wyłącz pozycję, do której użytkownik jeszcze nie ma dostępu, wyjaśnij powód w podpowiedzi albo ukryj ją dla ról, które nie powinny jej widzieć, a logika zaznaczania nadal działa.

  • SelectedIndex to strona wybrana przez użytkownika
  • OnSelectionChange przełącza stronę lub ramkę
  • OnItemClick na pasku i OnClick dla każdej pozycji
  • Enabled, Hint i Visible dla każdej pozycji
Przeczytaj temat pomocy

Struktura nawigacji

Wielopoziomowe drzewo z wyszukiwaniem, karty dokumentów, ścieżka nawigacji i paleta poleceń, wszystko na tym samym niezależnym od frameworka modelu co pasek.

Demo NavigationShellFMX z drzewem z wyszukiwaniem Mail, Contacts, Calendar i Settings po lewej, czterema kartami z aktywną kartą Work oraz ścieżką nawigacji Mail, Folders, Work nad stroną

Struktura nawigacji

Wielopoziomowe drzewo z wyszukiwaniem

Duże aplikacje szybko przerastają płaską listę stron. Ustaw Mode na nbmTree, a pasek stanie się drzewem o dowolnej liczbie poziomów: pozycje nadal tworzą płaską kolekcję, a Depth pozycji określa jej poziom, więc kod wypełniający pasek prawie się nie zmienia. Każdy poziom ma wcięcie, a każdy element nadrzędny można zwinąć. Włącz ShowSearch, a wiersz wyszukiwania nad pozycjami filtruje drzewo w trakcie pisania, utrzymuje rozwinięte elementy nadrzędne każdego dopasowania i podświetla pasujące znaki. Dopasowanie rozmyte znajduje 'Settings' po wpisaniu 'stg'. Tryb drzewa i wyszukiwanie są częścią wszystkich edycji.

  • Mode := nbmTree i Depth dla każdej pozycji
  • ExpandAll, CollapseAll i Expand(aIndex, aRecursive)
  • Filter z FilterMode nfmContains lub nfmFuzzy
  • ShowSearch rysuje wiersz wyszukiwania, Esc go czyści
  • Strzałki w prawo i w lewo rozwijają i zwijają, * rozwija całą gałąź
Przeczytaj temat pomocy

Struktura nawigacji

Karty dla otwartych dokumentów

Aplikacje w stylu dokumentowym pokazują otwarte strony jako karty. TsgcFMXNavigationTabs, TsgcVCLNavigationTabs oraz paski dla WinForms, WPF i Avalonia rysują karty z ikoną, tytułem, przyciskiem zamknięcia i kropką zmodyfikowania, a także przycisk nowej karty i listę wszystkich kart. Gdy karty się nie mieszczą, TabSizing je zmniejsza albo pojawiają się przyciski przewijania. Control karty to strona, którą pasek pokazuje, gdy karta jest aktywna. W edycji Zarejestrowana użytkownik może też przeciągać karty w inne miejsce, przypinać te, które mają zostać na miejscu, i przeciągnąć kartę poza pasek, aby otworzyć ją we własnym oknie, a SaveLayout zachowuje układ do następnego uruchomienia.

  • Tabs.AddTab, ActiveIndex i Control dla każdej karty
  • TabSizing, CloseButtons, ShowNewButton, ShowListButton
  • Ctrl+Tab, zamykanie środkowym przyciskiem myszy, OnTabClose może je odrzucić
  • Tylko zarejestrowana zmiana kolejności przeciąganiem, karty Pinned, OnTabTearOff, SaveLayout i LoadLayout
Przeczytaj temat pomocy Zmiana kolejności, przypięte karty i odrywanie

Struktura nawigacji

Ścieżka nawigacji, która podąża za drzewem

Głębokie drzewa wymagają sposobu, by zobaczyć, gdzie jesteś, i skoczyć wyżej. Ścieżka nawigacji pokazuje drogę jako wiersz segmentów, na przykład Mail, Folders, Work. Kliknięcie segmentu wraca do niego, a strzałka za segmentem wyświetla jego elementy podrzędne, aby przejść gdzie indziej. Powiąż ją z paskiem nawigacji, a będzie podążać za wybraną pozycją, albo wypełnij ją samodzielnie z Path lub Segments. Gdy ścieżka jest zbyt długa, pierwsze segmenty zwijają się do przycisku przepełnienia. W edycji Zarejestrowana kliknięcie pustego obszaru, F4 lub Ctrl+L zamienia ścieżkę nawigacji w pole edycji z pełną ścieżką, jak pasek adresu w menedżerze plików.

  • NavigationBar wiąże ścieżkę nawigacji z paskiem
  • Własne Path, PathDelimiter i OnGetChildren
  • OnSegmentClick i AutoTruncate
  • Tylko zarejestrowana tryb edycji z OnPathEdit
Przeczytaj temat pomocy

Struktura nawigacji Tylko zarejestrowana

Paleta poleceń dla każdego polecenia

Zaawansowani użytkownicy wolą pisać niż szukać w menu. Naciśnij Ctrl+Shift+P, a paleta poleceń otworzy się u góry okna: wpisz kilka liter, a uporządkuje każde polecenie według dopasowania rozmytego, tak że 'tgsb' znajduje 'Toggle sidebar', z podświetlonymi pasującymi znakami, kategorią lub ścieżką w przygaszonym kolorze i skrótem po prawej. Przy pustym zapytaniu najpierw pojawiają się ostatnio używane polecenia. Paleta wyświetla własne polecenia i wszystkie dodane źródła poleceń: pozycje paska nawigacji, przyciski wstążki lub paska narzędzi (Delphi), akcje z listy akcji albo własne źródło.

  • Commands.AddCommand z kategorią, słowami kluczowymi i tekstem skrótu
  • Sources.AddSource dla paska, wstążki, paska narzędzi lub listy akcji
  • SaveRecent i LoadRecent zachowują listę ostatnich
  • ICommand w poleceniach w .NET

Edycja Zarejestrowana w FireMonkey, VCL, WinForms, WPF i Avalonia. Interfejs IsgcUICommandSource jest częścią wszystkich edycji.

Przeczytaj temat pomocy Źródła poleceń

Struktura nawigacji

Formularz z kartami w pasku tytułu

Przeglądarki, terminale i nowoczesne edytory umieszczają karty w nagłówku okna, dzięki czemu dokumenty dostają całą wysokość ekranu. Formularz z kartami robi to samo w Twojej aplikacji. Upuść go na formularz i połącz z paskiem kart: sgcUI usuwa natywny nagłówek i rysuje pasek tytułu z motywem, z ikoną okna, kartami, przyciskiem nowej karty oraz przyciskami minimalizacji, maksymalizacji i zamknięcia, w motywie sgcUI aplikacji, Classic lub Fluent, jasnym lub ciemnym. Okno zachowuje cień, krawędzie zmiany rozmiaru i zachowanie po maksymalizacji, a Windows 11 pokazuje układy przyciągania, gdy wskaźnik spoczywa na przycisku maksymalizacji. Puste miejsce po prawej stronie ostatniej karty przeciąga okno. W edycji Zarejestrowana użytkownik przeciąga kartę z paska do nowego okna i upuszcza ją na pasku tytułu innego okna, jak w przeglądarce internetowej.

  • TsgcVCLNavigationTabbedForm i TsgcFMXNavigationTabbedForm w Delphi i C++ Builder, TsgcWinFormsNavigationTabbedForm, TsgcWpfNavigationTabbedWindow i TsgcAvaloniaNavigationTabbedWindow w .NET
  • Tabs łączy pasek kart. W Delphi Notebook przenosi pasek kart notatnika do paska tytułu, a strony zostają w notatniku
  • Dwukrotne kliknięcie pustego paska maksymalizuje okno, a kliknięcie prawym przyciskiem pokazuje menu systemowe
  • W WPF i Avalonia dołączona właściwość Tabs okna konfiguruje formularz z XAML
  • Tylko zarejestrowana odrywanie: TearOffMode przenosi oderwaną kartę do okna pod wskaźnikiem, a ttmNewForm otwiera ją w nowym oknie z OnCreateTearOffForm, które podąża za wskaźnikiem

Formularz z kartami jest w każdej edycji, także w Community. Odrywanie jest w edycji Zarejestrowana, tak jak odrywanie kart. Ramka z motywem wymaga Windows z kompozycją pulpitu, a w FireMonkey jest stosowana tylko w Windows: w macOS, Linux, iOS i Android zostaje natywny pasek tytułu.

Przeczytaj temat pomocy Ramka okna Formularz z kartami w .NET

Menedżer dokowania

Przestrzeń robocza w stylu IDE: panele narzędzi zadokowane z każdej strony, automatycznie ukryte lub pływające, obszar dokumentów z kartami w centrum oraz układ zapisany jako JSON.

Powierzchnia dokowania z kartami Explorer i Search po lewej, paskiem automatycznie ukrytego Toolbox, czterema kartami dokumentów, Properties po prawej i Output na dole, z prowadnicami upuszczania i prostokątem podglądu na prawej połowie dokumentów podczas przeciągania Output

Menedżer dokowania Tylko zarejestrowana

Przeciągaj panele na prowadnice upuszczania

Aplikacje z wieloma oknami narzędzi potrzebują przestrzeni roboczej, którą użytkownik może sam ułożyć. TsgcVCLDockManager, TsgcFMXDockManager, TsgcWinFormsDockManager, TsgcWpfDockManager i TsgcAvaloniaDockManager dokują panele narzędzi po czterech stronach formularza, w zagnieżdżonych podziałach z rozdzielaczami i w grupach kart. Użytkownik przeciąga nagłówek lub kartę, a prowadnice upuszczania pokazują, gdzie panel może wylądować: kompas na grupie pod wskaźnikiem dzieli tę grupę po jednej ze stron lub dodaje panel do niej jako kartę, prowadnice krawędzi dokują go na krawędzi całej powierzchni, a prostokąt podglądu w kolorze akcentu pokazuje, ile miejsca zajmie. Esc anuluje przeciąganie. Strona Dokowanie w Avalonia pokazuje TsgcAvaloniaDockManager w XAML i C#.

  • Panels.Add z Name, Caption, Placement i DockSize oraz własną kontrolką jako Control
  • DockPanel, ClosePanel, ShowPanel i ActivatePanel w kodzie
  • OnPanelDock może odmówić zmiany dokowania, odłączenia do okna pływającego lub automatycznego ukrywania
  • Przyciski zamknięcia, przypięcia, maksymalizacji i menu w każdym nagłówku
Przeczytaj temat pomocy Przeciąganie i upuszczanie

Menedżer dokowania Tylko zarejestrowana

Automatycznie ukrywaj panele na paskach bocznych

Panele narzędzi, które są potrzebne tylko od czasu do czasu, nie powinny zajmować miejsca przez cały czas. Przycisk przypięcia w nagłówku automatycznie ukrywa jego grupę: panele stają się kartami na wąskim pasku z boku formularza, a najechanie lub kliknięcie karty wysuwa panel nad zawartość. Panel chowa się z powrotem, gdy użytkownik pracuje gdzie indziej, a przycisk przypięcia w wysuniętym panelu ponownie dokuje grupę, po tej samej stronie i w tym samym rozmiarze. W iOS i Androidzie dotknięcie otwiera wysuwany panel.

  • Model.SetAutoHide(aPanel, True) w kodzie
  • AutoHideDelay ustawia opóźnienie po najechaniu, domyślnie 400 ms
  • CanAutoHide dla każdego panelu, dokumenty nigdy nie są automatycznie ukrywane
  • Alt+F7 i paleta poleceń otwierają wysuwany panel automatycznie ukrytego panelu
Przeczytaj temat pomocy

Menedżer dokowania Tylko zarejestrowana

Okna pływające na pulpicie

Panel upuszczony poza prowadnicami unosi się we własnym oknie, które użytkownik przenosi w inne miejsce lub na inny monitor. Okno pływające ma układ jak powierzchnia dokowania, więc można w nim zadokować kolejne panele obok siebie lub jako karty, a dwukrotne kliknięcie jego nagłówka dokuje je z powrotem. Okna pływające są bezramkowymi oknami narzędzi należącymi do formularza i niewidocznymi na pasku zadań, z rysowanym nagłówkiem i obramowaniem do zmiany rozmiaru, a każde używa skali własnego monitora. Działają w aplikacjach desktopowych VCL, WinForms, WPF i Avalonia oraz w FireMonkey w Windows i macOS. W iOS i Androidzie panele nie pływają, a przeciąganie pokazuje tylko prowadnice.

  • FloatPanel(aPanel, aLeft, aTop) w kodzie
  • AllowFloating w menedżerze dokowania i CanFloat dla każdego panelu
  • Placement := dplFloat uruchamia panel jako pływający w rozmiarze FloatWidth na FloatHeight
  • Okno pływające poza widocznym obszarem roboczym wraca na niego podczas wczytywania układu
Przeczytaj temat pomocy

Menedżer dokowania Tylko zarejestrowana

Obszar dokumentów z kartami w centrum

Centrum powierzchni dokowania zajmują dokumenty: jedna lub więcej grup dokumentów, każda z paskiem kart u góry. Pasek działa jak karty nawigacji: zmiana kolejności przeciąganiem, przypięte dokumenty na początku, przyciski zamknięcia, kropka zmodyfikowania, zamknięcie środkowym przyciskiem myszy, Ctrl+Tab i lista wszystkich kart. Przeciągnij kartę dokumentu na boczne ramię kompasu, aby podzielić obszar na dwie grupy dokumentów obok siebie lub jedna nad drugą, oderwij ją, aby ją odłączyć do okna pływającego, albo kliknij ją dwukrotnie, aby zmaksymalizować jej grupę. Przycisk nowej karty wywołuje OnNewDocument, w którym Twój kod tworzy następny dokument.

  • Kind := dpkDocument z Pinned i Modified dla każdego panelu
  • DocumentTabSizing, DocumentCloseButtons, DocumentShowNewButton i DocumentShowListButton
  • Ctrl+F6 przełącza dokumenty, OnActiveDocumentChange zgłasza aktywny
  • OnPanelClose może zostawić dokument otwarty
Przeczytaj temat pomocy

Menedżer dokowania Tylko zarejestrowana

Zapisz układ i przywróć go

Użytkownicy oczekują, że znajdą panele tam, gdzie je zostawili. SaveLayout zapisuje cały układ jako zwarty JSON: podziały i ich rozmiary, grupy i ich aktywne panele, automatycznie ukryte grupy każdej strony, okna pływające z ich granicami, zmaksymalizowaną grupę i ukryte panele. LoadLayout przywraca go przy następnym uruchomieniu. Tekst jest taki sam w Delphi i .NET, więc jeden plik układu służy obu. Panel, który układ wymienia, a którego formularz jeszcze nie ma, na przykład otwarty wcześniej dokument, trafia do OnRestorePanel, gdzie Twój kod tworzy jego zawartość lub go pomija.

  • SaveLayout, SaveLayoutToFile i SaveLayoutToStream
  • LoadLayout, LoadLayoutFromFile i LoadLayoutFromStream zwracają False dla obcego tekstu i niczego nie zmieniają
  • OnRestorePanel dla paneli tworzonych w czasie działania
  • Polecenie "Window" dla każdego panelu zamienia paletę poleceń w przełącznik okien

Edycja Zarejestrowana w FireMonkey, VCL, WinForms, WPF i Avalonia, ze wsparciem dla C++ Builder. Klawiatura, UI Automation, pismo od prawej do lewej, motywy i wysoki DPI w komplecie.

Przeczytaj temat pomocy

Pozycje, które informują

Wiersze niosą więcej niż podpis: ikonę, licznik i powiązanie z już napisaną logiką.

Plakietki z liczbą nieprzeczytanych

Pozycje, które informują

Plakietki z liczbą nieprzeczytanych

Użytkownicy powinni widzieć, że coś wymaga uwagi, zanim otworzą stronę. Nadaj pozycji Badge, na przykład liczbę nieprzeczytanych lub słowo New, a pasek narysuje ją jako pigułkę w kolorze akcentu po prawej stronie wiersza, z czarnym lub białym tekstem, zależnie od tego, co jest czytelniejsze. Ustawiaj ją z kodu przy każdej zmianie wartości, a pasek sam się odrysuje. Na zwiniętym pasku plakietka staje się kropką na ikonie. Ponieważ plakietka to zwykły tekst, ta sama właściwość obsługuje liczniki, krótkie etykiety i słowa statusu bez własnego kodu rysującego.

  • Badge to krótki tekst dla każdej pozycji
  • Pusty Badge nic nie rysuje
  • Pigułka używa akcentu motywu lub Twojego AccentColor
  • Połącz z Hint, aby wyjaśnić licznik
Przeczytaj temat pomocy
Ikony z listy obrazów lub glif

Pozycje, które informują

Ikony z listy obrazów lub glif

Każdy wiersz ma miejsce na ikonę. Wskaż paskowi listę obrazów, której już używasz, i ustaw ImageIndex dla każdej pozycji, a obrazy z maską lub 32-bitowe są konwertowane raz i trzymane w pamięci podręcznej do zmiany listy. Nie masz jeszcze listy obrazów? Ustaw zamiast tego Glyph, literę lub krótki symbol, który podąża za kolorami motywu, tak wyglądają dema. Wyłączona pozycja rysuje obraz z 40-procentową przezroczystością, więc stan jest jasny na pierwszy rzut oka. Można mieszać oba sposoby: pozycje z indeksem obrazu pokazują obraz, a pozostałe wracają do glifu, więc ikony możesz dodawać stopniowo.

  • Images i ImageIndex dla list obrazów
  • Glyph dla litery lub symbolu bez obrazów
  • VCL rysuje obrazy w ich własnym rozmiarze
  • Listy obrazów FireMonkey od Delphi XE8
Przeczytaj temat pomocy

Pozycje, które informują Tylko zarejestrowana

Podłącz pozycje do swoich TAction

Aplikacje zbudowane na TActionList trzymają już polecenia, podpisy i reguły włączenia w jednym miejscu. Powiąż pozycję z dowolnym TAction VCL lub FireMonkey przez właściwość Action, a jej Caption, Enabled, Visible, Hint i ImageIndex podążają za akcją. Kliknięcie wykonuje akcję z paskiem jako ActionComponent, a OnUpdate działa w czasie bezczynności, więc pozycja szarzeje, gdy tylko jej akcja zostanie wyłączona. W .NET to samo robią Command i CommandParameter. Jeden TActionList może sterować menu, paskiem narzędzi i skrótami klawiszowymi formularza.

  • Action łączy pozycję z dowolnym TBasicAction
  • OnClick pozycji działa zamiast akcji
  • Kompilowane pod SGC_NAVIGATION_ACTIONS
  • .NET: Command i CommandParameter z ICommand

Community: zamiast akcji przypisz OnClick pozycji lub OnItemClick paska.

Przeczytaj temat pomocy

Klawiatura, motywy i eksport

Szczegóły, dzięki którym pasek wygląda natywnie i pozostaje spójny z resztą aplikacji.

Nawigacja przede wszystkim z klawiatury

Klawiatura, motywy i eksport

Nawigacja przede wszystkim z klawiatury

Zaawansowani użytkownicy przełączają strony bez myszy, a audyty dostępności tego oczekują. Pasek przejmuje fokus klawiszem Tab i porusza zaznaczony wiersz po widocznych, włączonych pozycjach: strzałki w górę i w dół przesuwają o jedną, Home i End skaczą, Enter lub Spacja aktywuje. W akordeonie strzałka w lewo zwija grupę, a w prawo ją rozwija. Przerywana ramka fokusu pojawia się tylko podczas używania klawiatury, a fokus pozostaje oddzielony od wybranej strony. Te same klawisze działają w pasku FireMonkey przez CanFocus, więc użytkownicy desktopu mają to samo zachowanie na każdej platformie.

  • TabStop jest domyślnie włączony dla paska VCL
  • FocusedIndex modelu to wiersz klawiatury
  • SelectedIndex pozostaje wybraną stroną
  • Podpowiedzi pokazują podpis na zwiniętym pasku
Przeczytaj temat pomocy
Jasny, ciemny i Twój kolor akcentu

Klawiatura, motywy i eksport

Jasny, ciemny i Twój kolor akcentu

Menu, które ignoruje motyw aplikacji, wygląda na doklejone. Theme ustawia kolory powierzchni, obramowania, tekstu, nagłówka grupy, najechania i akcentu ze wspólnych tokenów sgcUICore, więc pasek i sgcDashboard z tym samym Theme pasują idealnie. AccentColor zastępuje akcent kolorem Twojej marki dla paska zaznaczenia, ramki fokusu i plakietek. Pasek umieszczony w kafelku dashboardu sam podąża za motywem dashboardu. Przełącz motyw w czasie działania, a pasek odrysuje się od razu, gotowy na przełącznik trybu ciemnego na stronie ustawień.

  • Theme: utDefault (domyślnie, podąża za motywem aplikacji), utLight lub utDark
  • AccentColor jako wartość $AARRGGBB, 0 zachowuje akcent motywu
  • Te same tokeny co w każdym produkcie sgcUI
  • Kafelki dashboardu przekazują swój motyw do paska
Przeczytaj temat pomocy
Renderuj pasek bez okna

Klawiatura, motywy i eksport

Renderuj pasek bez okna

Dokumentacja, testy wizualne i zaplecza webowe czasem potrzebują obrazu menu, a nie samego menu. Renderer w sgcNavigation_Render rysuje TsgcNavigationModel bez okna i bez VCL czy FireMonkey, więc program konsolowy, usługa lub serwer tworzy ten sam pasek jako PNG lub SVG. Jednostka kompiluje się na każdej platformie, także Linux64, a parametr skali daje ostre obrazy na ekranach o wysokim DPI. Przekaż rendererowi swoją listę obrazów, a wyeksportowany obraz pokaże te same ikony co działająca aplikacja.

  • sgcNavigationSaveToPNG zapisuje plik lub strumień PNG
  • sgcNavigationSaveToSVG zapisuje ten sam pasek jako SVG
  • sgcNavigationRender rysuje na dowolnym canvasie sgcUICore
  • Szerokość i wysokość w pikselach logicznych, razy skala
Przeczytaj temat pomocy

Zobacz sgcNavigation w akcji

sgcNavigation w demach pakietu sgcUI: kompletne aplikacje działające offline na wbudowanych danych symulowanych.

Kto buduje z sgcNavigation

Nowoczesna powłoka dla aplikacji ERP i administracyjnych

Masz dziesiątki istniejących formularzy i główne okno, które nadal otwiera je z paska menu. Umieść panel boczny po lewej, jedną pozycję na obszar, i pozwól, aby OnSelectionChange przełączał karty TPageControl z ukrytymi kartami. Plakietki pokazują zamówienia oczekujące lub nieprzeczytane wiadomości, a pasek ikon oddaje formularzom ich miejsce. Uruchom SidebarApp, aby zobaczyć ten wzorzec działający ze stroną sgcDashboard.

  • Tryb panelu bocznego
  • Plakietki
  • Zwijanie do paska ikon
Uruchom demo SidebarApp

Ustawienia i konsole administracyjne

Ekrany konfiguracji grupują dziesiątki stron pod kilkoma nagłówkami, takimi jak Sales, Inventory i Admin. Akordeon trzyma otwartą jedną sekcję naraz lub kilka z AllowMultiExpand, a linki Action używają ponownie poleceń i reguł włączenia Twojego TActionList. Użytkownicy klawiatury poruszają się po sekcjach strzałkami. Demo Accordion pokazuje trzy grupy, przełącznik rozwijania i dziennik kliknięć.

  • Tryb akordeonu
  • Linki Action
  • Nawigacja z klawiatury
Uruchom demo Accordion

Ta sama nawigacja na każdej platformie

Aplikacja FireMonkey działająca na Windows, macOS, iOS i Androidzie nie powinna potrzebować innego menu na każdej z nich. TsgcFMXNavigationBar ma te same pozycje, tryby i zdarzenia co pasek VCL, a paski .NET dla WinForms, WPF i Avalonia używają tych samych nazw. Zespoły, które dostarczają aplikację desktopową w Delphi i narzędzie .NET, zachowują jeden model myślenia. SidebarFMX to wersja FireMonkey dema panelu bocznego.

  • Pasek FireMonkey
  • Motywy
  • Paski .NET
Uruchom demo SidebarFMX

Pasek nawigacji w kilku linijkach

To samo API w FireMonkey, C#, Delphi VCL i C++ Builder: pasek akordeonowy z grupami, plakietką, wyłączoną pozycją i przyciskiem Collapse. Karty FireMonkey i C# dodają pasek kart i paletę poleceń.

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;

Okno w stylu przeglądarki: TsgcVCLNavigationTabbedForm przenosi pasek kart do paska tytułu z motywem.

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

Uruchom dema sgcNavigation

Dema NavigationShell i DockingShell są dołączone dla FireMonkey, VCL, WinForms, WPF i Avalonia. Demo panelu bocznego jest dołączone dla FireMonkey, a dema SidebarApp i Accordion są dołączone w edycji .NET jako projekty WinForms, WPF i Avalonia oraz dla Delphi VCL i C++ Builder.

NavigationShellFMX

Tylko zarejestrowana NavigationShellFMX

Kompletna struktura nawigacji dla FireMonkey, tylko dla Delphi: drzewo z wierszem wyszukiwania po lewej, karta dla każdej otwartej strony, ścieżka nawigacji podążająca za drzewem i paleta poleceń (Ctrl+Shift+P) wyświetlająca pozycje paska oraz listę akcji. Zawiera przełączniki ciemnego motywu i układu od prawej do lewej. Korzysta z palety, więc wymaga edycji Zarejestrowana lub wersji próbnej.

Tylko zarejestrowana NavigationShell

Ta sama struktura dla VCL, z małą wstążką u góry, której polecenia pojawiają się też w palecie poleceń ze ścieżką 'Tab > Group', obok pozycji drzewa i akcji z listy akcji. Zawiera przełączniki ciemnego motywu i układu od prawej do lewej.

Tylko zarejestrowana NavigationShell dla .NET

Struktura nawigacji w edycji .NET: NavigationShell dla WinForms, NavigationShellWpf i NavigationShellAvalonia, każde z drzewem i wyszukiwaniem, kartami, ścieżką nawigacji i paletą poleceń.

DockingShell

Tylko zarejestrowana DockingShell i DockingShellFMX

Powłoka w stylu IDE zbudowana na menedżerze dokowania, dla VCL i FireMonkey: drzewo paska nawigacji jako Explorer po lewej, Properties po prawej, automatycznie ukryty Output na dole oraz dokumenty memo z przypiętymi i zmodyfikowanymi kartami w centrum. Paleta poleceń wyświetla jedno polecenie Window na panel, w komplecie są przełącznik motywu i przycisk Reset layout, a układ jest zapisywany do JSON przy zamknięciu i wczytywany przy następnym uruchomieniu.

Tylko zarejestrowana DockingShell dla .NET

Powłoka dokowania w edycji .NET: DockingShell dla WinForms, DockingShellWpf i DockingShellAvalonia, każde z panelami zadokowanymi, automatycznie ukrytymi i pływającymi, obszarem dokumentów i zapisanym układem.

TabbedForm and TabbedFormFMX

Okno w stylu przeglądarki z kartami w pasku tytułu, dla VCL i dla FireMonkey, z odpowiednikami dla C++ Builder: przycisk nowej karty, przyciski zamknięcia i wybór motywu: jasny, ciemny, Fluent jasny i Fluent ciemny. Przeciągnij kartę poza pasek, a otworzy się w nowym oknie, które podąża za wskaźnikiem. Następnie upuść ją na pasku tytułu innego okna. Odrywanie wymaga edycji Zarejestrowana. W edycji .NET jest dostarczane jako TabbedForm dla WinForms, TabbedFormWpf i TabbedFormAvalonia.

SidebarFMX

Demo panelu bocznego zbudowane z TsgcFMXNavigationBar dla FireMonkey, tylko dla Delphi. Te same pozycje, tryby i zdarzenia co w wersji VCL, gotowe na cele Windows, macOS i mobilne.

SidebarApp

SidebarApp

Panel boczny sterujący kontrolką stron z ukrytymi kartami, z ikonami, plakietką, wyłączoną pozycją, przyciskiem Collapse, listą motywów i stroną KPI sgcDashboard. Pokazuje wzorzec powłoki aplikacji od początku do końca.

Accordion

Tylko zarejestrowana Accordion

Trzy grupy, Sales, Inventory i Admin, przełącznik AllowMultiExpand, linki Action i dziennik kliknięć. Używa linków Action, więc wymaga edycji zarejestrowanej lub wersji próbnej.

Skompilowane dema

Gotowe do uruchomienia pliki wykonywalne każdego produktu sgcUI, nic nie trzeba instalować.

Pobierz sgcUI_bin.zip →

Przewodnik Getting Started

Pięć dem QuickStart dla Delphi (VCL) znajduje się w Demos\Navigation\Delphi\00.QuickStart. Przewodnik PDF omawia je krok po kroku: pierwszy pasek nawigacji, menu budowane w kodzie, karty dokumentów, motywy i style oraz mały klient poczty.

Pobierz przewodnik (PDF, po angielsku) →

sgcNavigation czy kontrolki VCL z RAD Studio 13.2?

RAD Studio 13.2 Florence dodało dwie kontrolki VCL, TNavigationView i TTabView. Jeśli Twoja aplikacja jest wyłącznie VCL i kompilujesz ją w wersji 13.2 lub nowszej, są dobrym wbudowanym wyborem. sgcNavigation daje wartość, gdy ta sama nawigacja musi działać w FireMonkey i .NET, gdy kompilujesz w starszych wersjach Delphi oraz gdy potrzebujesz ścieżki nawigacji, palety poleceń lub drzewa z wyszukiwaniem.

TNavigationView to pionowa lista pozycji z trybem zwykłym i kompaktowym, obrazami, tekstem wielowierszowym, przewijaniem i zmianą kolejności przeciąganiem, która wiąże swoje pozycje z kontrolką wielostronicową, ramką lub TCardPanel. TTabView to nowoczesny wariant TTabSet, którego karty zawierają formularze lub inne kontrolki, z obrazem, tekstem wielowierszowym i przyciskiem zamknięcia na każdej karcie, przyciskiem dodawania karty, rozwijaną listą wszystkich kart i przyciskami przewijania. Obie są dobrze zaprojektowane i zgodne z modelem programowania VCL, więc w nowym projekcie VCL w wersji 13.2 warto je wypróbować.

sgcNavigation utrzymuje jeden niezależny od frameworka model i jeden bezokienkowy renderer za każdym hostem. Pasek oraz karty, ścieżka nawigacji, wielopoziomowe drzewo i paleta poleceń, które dołączają do niego w tej wersji, zachowują się tak samo w FireMonkey, WinForms, WPF, Avalonia i VCL z Delphi 7 do 13, więc produkt z interfejsem desktopowym, mobilnym i .NET nawiguje wszędzie tak samo.

TematsgcNavigationTNavigationView i TTabView (VCL, RAD Studio 13.2)
FrameworkiFireMonkey, WinForms, WPF, Avalonia i VCLVCL
Wersje Delphi i C++ BuilderDelphi 7 do 13 (VCL), Delphi XE6 do 13 (FireMonkey), C++ Builder 2007 do 13RAD Studio 13.2 i nowsze
Hosty .NETWinForms, WPF i Avalonia na .NET Framework 4.7.2, .NET 8, 9 i 10Nie dotyczy, to kontrolki VCL
Renderowanie bezokienkowe w LinuksieEksport PNG i SVG w Linux64 od Delphi 10.2Nie opisano w dokumentacji 13.2
Model współdzielony między frameworkamiJeden niezależny od frameworka model, z tymi samymi nazwami w Delphi i .NETNie opisano w dokumentacji 13.2
Ścieżka nawigacjiPasek ścieżki nawigacji, który może podążać za wybranym węzłem paskaNie opisano w dokumentacji 13.2
Paleta poleceńPaleta obsługiwana z klawiatury z wyszukiwaniem rozmytym w poleceniach, pozycjach i akcjachNie opisano w dokumentacji 13.2
Wyszukiwanie w drzewieWielopoziomowe drzewo z wierszem wyszukiwania, który utrzymuje widoczne elementy nadrzędne każdego dopasowaniaNie opisano w dokumentacji 13.2

Szczegóły dotyczące TNavigationView i TTabView pochodzą z informacji o wydaniu RAD Studio 13 Florence Release 2 firmy Embarcadero.

Gdzie jest sgcNavigation

sgcNavigation jest w każdej edycji sgcUI, począwszy od Standard, i jest też sprzedawany osobno. sgcNavigation jest również w pakiecie All-Access.

Pojedynczy pakiet sgcNavigation

€149 / programista, pełny kod źródłowy, 1 rok aktualizacji.

Kup sgcNavigation → Zobacz cennik →

sgcUI Standard

sgcNavigation, sgcGrid, sgcToolbar i sgcEditors, od €380.

Zobacz Standard →

sgcUI Professional

Standard plus sgcCharts, sgcDashboard i sgcGauges, od €529.

Zobacz Professional →

sgcUI Enterprise

Wszystkie produkty sgcUI (17), od €699.

Zobacz Enterprise →

Bezpłatna edycja Community (esegece.sgcNavigation.Community w NuGet) zawiera pasek z trybem drzewa i wyszukiwaniem, podstawowe karty i ścieżkę nawigacji, formularz z kartami w pasku tytułu oraz interfejs źródeł poleceń. Edycja Zarejestrowana dodaje paletę poleceń, zmianę kolejności kart, przypięte karty, odrywanie i zapisany układ kart, tryb edycji ścieżki nawigacji, menedżer dokowania oraz linki Action pozycji.

FunkcjaCommunity (bezpłatna)Zarejestrowana
Tryby panelu bocznego i akordeonu✓✓
Zwijanie do animowanego paska ikon✓✓
Ikony, glify i plakietki✓✓
Nawigacja z klawiatury✓✓
Jasny i ciemny motyw, kolor akcentu✓✓
Eksport PNG i SVG bez okna✓✓
Wielopoziomowy tryb drzewa i wyszukiwanie✓✓
Karty: rozmiar, przyciski zamknięcia, przyciski listy i nowej karty, przewijanie, klawiatura✓✓
Formularz z kartami: karty w pasku tytułu z motywem✓✓
Ścieżka nawigacji: segmenty, strzałki, przepełnienie, powiązanie z paskiem✓✓
Źródła poleceń (IsgcUICommandSource)✓✓
Paleta poleceń−✓
Zmiana kolejności kart przeciąganiem, przypięte karty, odrywanie, zapisany układ kart−✓
Odrywanie formularza z kartami do nowego okna−✓
Tryb edycji ścieżki nawigacji−✓
Menedżer dokowania−✓
Linki Action (Delphi) i Command (.NET)−✓

Obsługiwane frameworki i platformy

Komponenty w sgcNavigation

KomponentCel
TsgcFMXNavigationBarDelphi i C++ Builder, FireMonkey (sgcNavigation_FMX)
TsgcWinFormsNavigationBar.NET, WinForms
TsgcWpfNavigationBar.NET, WPF
TsgcAvaloniaNavigationBar.NET, Avalonia
TsgcVCLNavigationBarDelphi i C++ Builder, VCL (sgcNavigation_VCL)
TsgcFMXNavigationTabs, TsgcFMXNavigationBreadcrumb, TsgcFMXCommandPaletteDelphi i C++ Builder, FireMonkey (sgcNavigation_Tabs_FMX, sgcNavigation_Palette_FMX)
TsgcWinFormsNavigationTabs, TsgcWpfNavigationTabs, TsgcAvaloniaNavigationTabs.NET, WinForms, WPF i Avalonia, z odpowiednimi klasami Breadcrumb i CommandPalette
TsgcVCLNavigationTabs, TsgcVCLNavigationBreadcrumb, TsgcVCLCommandPaletteDelphi i C++ Builder, VCL (sgcNavigation_Tabs_VCL, sgcNavigation_Palette_VCL)
TsgcVCLNavigationTabbedForm, TsgcFMXNavigationTabbedFormDelphi i C++ Builder, VCL i FireMonkey (sgcNavigation_TabbedForm_VCL, sgcNavigation_TabbedForm_FMX), pasek tytułu z motywem w Windows
TsgcWinFormsNavigationTabbedForm, TsgcWpfNavigationTabbedWindow, TsgcAvaloniaNavigationTabbedWindow.NET, WinForms, WPF i Avalonia
TsgcVCLDockManager, TsgcFMXDockManagerDelphi i C++ Builder, VCL i FireMonkey (sgcNavigation_Dock_VCL, sgcNavigation_Dock_FMX), edycja Zarejestrowana
TsgcWinFormsDockManager, TsgcWpfDockManager, TsgcAvaloniaDockManager.NET, WinForms, WPF i Avalonia, edycja Zarejestrowana
TsgcNavigationItem, TsgcNavigationItems, TsgcNavigationModelModel niezależny od frameworka (sgcNavigation_Model)
CelKomponentPlatformy
Delphi XE6 do 13, FireMonkeyTsgcFMXNavigationBarWindows, macOS, iOS, Android i Linux (FMXLinux)
.NET Framework 4.7.2, .NET 8, 9 i 10TsgcWinFormsNavigationBar, paski WPF i AvaloniaWinForms, WPF i Avalonia
Delphi 7 do 13, VCLTsgcVCLNavigationBarWin32 i Win64
C++ Builder 2007 do 13TsgcVCLNavigationBar, TsgcFMXNavigationBarWygenerowane nagłówki .hpp i biblioteki statyczne
Delphi 10.2 do 13, bez frameworkaModel i renderer PNG oraz SVG bez oknaLinux64, na przykład do renderowania paska na serwerze

Najczęściej zadawane pytania

Jeśli Twoja aplikacja jest wyłącznie VCL, TNavigationView i TTabView z RAD Studio 13.2 są dobrym wbudowanym wyborem i chętnie je polecamy. sgcNavigation jest lepszym wyborem, gdy ta sama nawigacja musi działać także w FireMonkey na macOS, iOS, Androidzie lub Linuksie albo w aplikacji WinForms, WPF lub Avalonia, gdy część zespołu nadal kompiluje w starszym Delphi lub C++ Builder albo gdy chcesz mieć ścieżkę nawigacji, paletę poleceń lub wielopoziomowe drzewo z wyszukiwaniem na pasku bocznym. Model i bezokienkowy renderer PNG i SVG są współdzielone przez wszystkie hosty. Tabelę porównawczą znajdziesz w sekcji Wybór.

Tak, w edycji Zarejestrowana. TsgcFMXCommandPalette, TsgcVCLCommandPalette oraz palety dla WinForms, WPF i Avalonia otwierają się klawiszami Ctrl+Shift+P, porządkują polecenia według dopasowania rozmytego w trakcie pisania i najpierw pokazują ostatnio używane polecenia. Oprócz własnych poleceń paleta wyświetla wszystkie dodane źródła poleceń: pozycje paska nawigacji, polecenia wstążki lub paska narzędzi w Delphi, akcje z listy akcji albo własne źródło przez interfejs IsgcUICommandSource. W .NET polecenie może mieć ICommand. Zobacz paletę poleceń.

Oba. Właściwość Mode przełącza między nbmSidebar i nbmAccordion na tej samej kontrolce, z tymi samymi pozycjami i zdarzeniami, więc możesz zmienić zdanie późno w projekcie lub zaoferować oba style jako preferencję użytkownika. Każdy tryb zwija się też do paska ikon.

Tak. Obsłuż OnSelectionChange i pokaż stronę odpowiadającą SelectedIndex, na przykład kartę TPageControl z ukrytymi kartami albo utwórz ramkę na żądanie. Demo SidebarApp jest zbudowane dokładnie w ten sposób i zawiera stronę KPI sgcDashboard.

Tak. TsgcFMXNavigationBar obsługuje Windows, macOS, iOS, Android i Linux (FMXLinux) od Delphi XE6, z tymi samymi pozycjami, trybami i zdarzeniami co pasek VCL. Listy obrazów FireMonkey wymagają Delphi XE8 lub nowszego; starsze wersje używają Glyph każdej pozycji.

Palety poleceń, zmiany kolejności kart przeciąganiem, przypiętych kart i odrywania, trybu edycji ścieżki nawigacji, menedżera dokowania oraz linków Action pozycji, które w .NET to właściwości Command i CommandParameter. Użyj zamiast linków Action OnClick pozycji lub OnItemClick paska. Każda inna funkcja, w tym drzewo z wyszukiwaniem, karty, pasek ikon, plakietki, motywy i eksport bez okna, jest w Community. Zobacz Edycje.

Nie. Port .NET nie ma czasowników projektanta ani edytora kolekcji, więc pozycje nie są serializowane i dodajesz je w kodzie, zwykle w konstruktorze formularza lub okna. W Delphi i C++ Builder kolekcja Items jest edytowana w czasie projektowania standardowym edytorem kolekcji.

Tak. Wszystkie rozmiary to piksele logiczne pomnożone przez skalę monitora, więc wiersze, ikony i plakietki są ostre przy dowolnym DPI. W WinForms szerokości i wysokości skalują się z DPI / 96 jak w VCL, a w WPF i Avalonia są jednostkami niezależnymi od urządzenia.

Tak. sgcNavigationSaveToPNG i sgcNavigationSaveToSVG renderują pasek z jego modelu bez okna i bez VCL czy FireMonkey, także na Linux64 od Delphi 10.2. Użyj tego do dokumentacji, testów regresji wizualnej lub strony webowej pokazującej menu Twojej aplikacji.

Nie. W iOS i Androidzie panele TsgcFMXDockManager dokują się, dzielą, tworzą karty i ukrywają automatycznie, ale nie pływają: AllowFloating jest wymuszone na False, dotknięcie otwiera automatycznie ukryty panel, bo nie ma najechania, długie naciśnięcie otwiera menu panelu, a przeciąganie pokazuje tylko prowadnice upuszczania. Okna pływające działają w aplikacjach desktopowych VCL, WinForms, WPF i Avalonia oraz w FireMonkey w Windows i macOS. Układ zapisany na pulpicie nadal wczytuje się na telefonie: panele jego okien pływających zachowują początkowe umieszczenie. Zobacz Okna pływające.

Pomoc sgcNavigation

3,000+Programistów
20+Lat
761+Komponentów
30+Integracji API
5Platform
30-dniowa gwarancja zwrotu pieniędzyNie jesteś zadowolony? Poproś o pełny zwrot pieniędzy w ciągu 30 dni od zakupu. Zobacz politykę zwrotów

Wypróbuj sgcNavigation już dziś

Wersja próbna sgcUI zawiera sgcNavigation i każdy inny produkt sgcUI.