FireMonkey, .NET & Delphi 7부터 13 sgcUI 구성 제품

sgcNavigation, FireMonkey, .NET, Delphi 7부터 13까지 같은 내비게이션 바

몇 분 만에 애플리케이션에 현대적인 내비게이션 메뉴를 추가하세요. 컨트롤 하나가 사이드바도 되고 아코디언도 되며, 부드러운 애니메이션과 함께 아이콘 레일로 접히고, 읽지 않은 개수를 배지로 표시하며, 키보드만으로 완전히 조작할 수 있습니다. 라이트 및 다크 테마가 기본 제공되며, 탭 폼은 웹 브라우저처럼 문서 탭을 테마가 적용된 제목 표시줄에 넣습니다. 하나의 모델과 하나의 헤드리스 렌더러가 FireMonkey, WinForms, WPF, Avalonia, Delphi 7부터 13의 VCL, C++ Builder에서 바를 구동하므로 제품의 모든 프런트엔드가 똑같이 탐색됩니다.

FireMonkey, WinForms, WPF, Avalonia, VCLDelphi 7부터 13C++ Builder 2007부터 13무료 .NET Community 에디션sgcUI Standard에 포함
Workspace와 Business 그룹에 항목 8개가 있는 사이드바, Dashboard가 선택되어 있고 오른쪽에 KPI 카드 두 개가 표시된 SidebarApp 데모

앱 메뉴에 필요한 모든 것

페이지 목록을 사용자가 바로 위치를 파악할 수 있는 내비게이션 구조로 바꿔 주는 스무 가지 기능입니다.

레이아웃과 모드

컨트롤 하나로 업무용 애플리케이션이 사용하는 두 가지 내비게이션 스타일과 그 사이의 좁은 레일을 모두 지원합니다.

컴포넌트 하나로 만드는 현대적인 앱 사이드바

레이아웃과 모드

컴포넌트 하나로 만드는 현대적인 앱 사이드바

대부분의 업무용 애플리케이션은 메인 폼의 왼쪽 가장자리에 같은 것을 필요로 합니다. 영역별로 묶인 페이지 목록과 현재 페이지의 분명한 표시입니다. 폼에 TsgcVCLNavigationBar를 놓고 왼쪽으로 정렬한 다음 항목을 추가하세요. 그룹 헤더는 아래 행들의 제목 역할을 하며 흐린 색으로 표시되고 선택되지 않습니다. 선택된 행에는 강조색 배경과 3픽셀 강조 막대가 표시되어 사용자가 현재 위치를 항상 알 수 있습니다. 마우스 오버와 누름 상태, 힌트, 비활성 행도 모두 자동으로 그려지므로 처음 실행할 때부터 완성된 모습입니다.

  • Mode := nbmSidebar가 기본 스타일입니다
  • IsGroup은 항목을 그룹 헤더로 바꿉니다
  • ItemHeight와 GroupHeight로 행 높이를 설정합니다
  • 마우스 휠로 긴 목록을 스크롤하고 ScrollIntoView로 원하는 항목을 표시합니다
  • 아랍어와 히브리어를 위한 오른쪽에서 왼쪽 지원: 아이콘과 캡션의 위치가 서로 바뀌고, 들여쓰기, 화살표 표시, 배지, 접기 버튼이 미러링됩니다
도움말 항목 읽기
속성 하나로 아코디언으로 전환

레이아웃과 모드

속성 하나로 아코디언으로 전환

설정 화면과 관리 콘솔은 화면에 다 들어가지 않을 만큼 섹션이 많은 경우가 흔합니다. Mode를 nbmAccordion으로 설정하면 모든 그룹 헤더가 아래 항목을 열고 닫는 섹션이 되며, 오른쪽에 화살표가 표시되고 하위 항목은 들여쓰기됩니다. 기본적으로는 한 번에 그룹 하나만 열려 있어 긴 메뉴가 짧게 유지됩니다. 사용자가 여러 섹션을 동시에 열어야 한다면 AllowMultiExpand를 설정하세요. 항목, 이벤트, 코드는 그대로 유지됩니다. 첫 번째 헤더 앞에 놓인 항목은 어떤 그룹에도 속하지 않고 항상 표시되므로, 섹션 위에 Home이나 Dashboard 항목을 두기에 적합합니다.

  • Mode := nbmAccordion으로 바 전체를 전환합니다
  • Expanded로 코드에서 그룹을 열거나 닫습니다
  • AllowMultiExpand로 여러 그룹을 열어 둘 수 있습니다
  • Indent로 하위 항목의 들여쓰기를 설정합니다
도움말 항목 읽기

레이아웃과 모드

애니메이션과 함께 아이콘 레일로 접기

넓은 사이드바는 사용자가 보려고 한 데이터의 공간을 차지합니다. Collapsed를 설정하면 바가 펼쳐진 너비에서 좁은 아이콘 레일로 약 150ms 만에 접힙니다. 레일에서는 아이콘만 그려지고, 캡션은 힌트가 되며, 그룹 헤더는 구분선으로, 배지는 점으로 바뀌므로 중요한 정보는 사라지지 않습니다. 바가 자체 너비를 설정하므로 옆의 콘텐츠는 alClient로 자연스럽게 따라옵니다. Collapsed 속성을 햄버거 버튼, 사용자 설정 또는 폼의 너비에 연결하면 사이드바 모드와 아코디언 모드 모두에서 레일이 같은 방식으로 열리고 닫힙니다.

  • Collapsed로 두 가지 너비를 전환합니다
  • 논리 픽셀 단위의 ExpandedWidth(220)와 CollapsedWidth(56)
  • AnimateCollapse로 애니메이션을 켜거나 끕니다
  • OnCollapsedChange는 레일이 열리거나 닫힐 때 알려 줍니다
도움말 항목 읽기

레이아웃과 모드

선택에 따라 페이지 전환

내비게이션 바는 사용자가 보는 화면을 전환할 때 비로소 쓸모가 있습니다. 활성화된 항목을 클릭하거나 탭하면 바가 이를 선택하고 OnItemClick을 발생시킨 다음 항목의 OnClick을 실행합니다. OnSelectionChange는 일치하는 페이지를 표시하는 단 하나의 위치이며, 예를 들어 탭이 숨겨진 TPageControl의 탭이 있습니다. SidebarApp 데모가 바로 이렇게 만들어져 있습니다. SelectedIndex로 코드에서 현재 페이지를 읽고 설정합니다. 사용자가 아직 접근할 수 없는 항목은 비활성화하고 힌트에 이유를 설명하거나, 보면 안 되는 역할에게는 숨기더라도 선택 로직은 계속 정상적으로 동작합니다.

  • SelectedIndex는 사용자가 선택한 페이지입니다
  • OnSelectionChange로 페이지나 프레임을 전환합니다
  • 바의 OnItemClick과 항목별 OnClick
  • 항목별 Enabled, Hint, Visible
도움말 항목 읽기

내비게이션 셸

검색이 있는 다단계 트리, 문서 탭, 브레드크럼, 명령 팔레트를 바와 같은 프레임워크 독립 모델 위에 구성했습니다.

왼쪽에 Mail, Contacts, Calendar, Settings가 있는 검색 가능한 트리, Work가 활성화된 탭 네 개, 페이지 위에 Mail, Folders, Work 브레드크럼이 표시된 NavigationShellFMX 데모

내비게이션 셸

검색이 있는 다단계 트리

큰 애플리케이션은 평평한 페이지 목록으로는 부족해집니다. Mode를 nbmTree로 설정하면 바가 원하는 만큼 깊은 트리가 됩니다. 항목은 계속 평평한 컬렉션이고 항목의 Depth가 레벨을 정하므로 바를 채우는 코드는 거의 바뀌지 않습니다. 각 레벨은 들여쓰기되고 각 부모는 접을 수 있습니다. ShowSearch를 켜면 항목 위의 검색 행이 입력하는 동안 트리를 필터링하고, 일치 항목의 부모를 열어 두며, 일치하는 문자를 강조 표시합니다. 퍼지 매칭은 'stg'로 'Settings'를 찾습니다. 트리 모드와 검색은 모든 에디션에 포함됩니다.

  • Mode := nbmTree와 항목별 Depth
  • ExpandAll, CollapseAll, Expand(aIndex, aRecursive)
  • FilterMode가 nfmContains 또는 nfmFuzzy인 Filter
  • ShowSearch가 검색 행을 그리고 Esc가 지웁니다
  • 오른쪽과 왼쪽 키로 펼치고 접으며 *는 가지 전체를 펼칩니다
도움말 항목 읽기

내비게이션 셸

열려 있는 문서를 위한 탭

문서 스타일 애플리케이션은 열린 페이지를 탭으로 보여 줍니다. TsgcFMXNavigationTabs, TsgcVCLNavigationTabs와 WinForms, WPF, Avalonia 스트립은 아이콘, 제목, 닫기 버튼, 수정됨 점이 있는 탭과 함께 새 탭 버튼과 모든 탭의 목록을 그립니다. 탭이 들어가지 않으면 TabSizing이 탭을 줄이거나 스크롤 버튼이 나타납니다. 탭의 Control은 그 탭이 활성일 때 스트립이 보여 주는 페이지입니다. Registered 에디션에서는 사용자가 탭을 끌어서 순서를 바꾸고, 그대로 두어야 할 탭을 고정하며, 탭을 스트립 밖으로 끌어 자체 창에서 열 수 있고, SaveLayout이 그 배치를 다음 실행까지 유지합니다.

  • 탭별 Tabs.AddTab, ActiveIndex, Control
  • TabSizing, CloseButtons, ShowNewButton, ShowListButton
  • Ctrl+Tab, 가운데 클릭으로 닫기, OnTabClose로 거부 가능
  • Registered 에디션 전용 끌어서 순서 바꾸기, Pinned 탭, OnTabTearOff, SaveLayout과 LoadLayout
도움말 항목 읽기 순서 바꾸기, 고정 탭, 분리

내비게이션 셸

트리를 따라가는 브레드크럼

깊은 트리에서는 현재 위치를 확인하고 위로 이동할 방법이 필요합니다. 브레드크럼은 경로를 Mail, Folders, Work처럼 세그먼트 행으로 보여 줍니다. 세그먼트를 클릭하면 그곳으로 돌아가고, 세그먼트 뒤의 갈매기 표시를 클릭하면 그 하위 항목이 나열되어 다른 곳으로 이동할 수 있습니다. 내비게이션 바에 바인딩하면 선택한 항목을 따라가며, Path나 Segments로 직접 채울 수도 있습니다. 경로가 너무 길면 앞쪽 세그먼트가 오버플로 버튼으로 접힙니다. Registered 에디션에서는 빈 영역 클릭, F4, Ctrl+L로 브레드크럼이 파일 관리자의 주소 표시줄처럼 전체 경로를 담은 편집 필드로 바뀝니다.

  • NavigationBar가 브레드크럼을 바에 바인딩합니다
  • 직접 지정하는 Path, PathDelimiter, OnGetChildren
  • OnSegmentClick과 AutoTruncate
  • Registered 에디션 전용 OnPathEdit가 있는 편집 모드
도움말 항목 읽기

내비게이션 셸 Registered 에디션 전용

모든 명령을 위한 명령 팔레트

고급 사용자는 메뉴를 뒤지기보다 입력하는 쪽을 선호합니다. Ctrl+Shift+P를 누르면 창 위쪽에 명령 팔레트가 열립니다. 몇 글자를 입력하면 모든 명령을 퍼지 매칭으로 정렬하므로 'tgsb'로 'Toggle sidebar'를 찾을 수 있고, 일치하는 문자가 강조되며, 카테고리나 경로는 흐린 색으로, 단축키는 오른쪽에 표시됩니다. 쿼리가 비어 있으면 최근에 사용한 명령이 먼저 나타납니다. 팔레트는 자체 명령과 추가한 모든 명령 소스를 나열합니다. 내비게이션 바의 항목, 리본이나 도구 모음의 버튼(Delphi), 액션 리스트의 액션, 또는 직접 만든 소스입니다.

  • 카테고리, 키워드, 단축키 텍스트를 지정하는 Commands.AddCommand
  • 바, 리본, 도구 모음, 액션 리스트용 Sources.AddSource
  • SaveRecent와 LoadRecent가 최근 목록을 유지합니다
  • .NET의 명령에는 ICommand

FireMonkey, VCL, WinForms, WPF, Avalonia의 Registered 에디션. IsgcUICommandSource 인터페이스는 모든 에디션에 포함됩니다.

도움말 항목 읽기 명령 소스

내비게이션 셸

탭이 제목 표시줄에 들어가는 탭 폼

브라우저, 터미널, 최신 편집기는 탭을 창 캡션에 넣어서 문서가 화면의 전체 높이를 사용합니다. 탭 폼은 애플리케이션에 같은 일을 해 줍니다. 폼에 올려놓고 탭 스트립에 연결하면, sgcUI가 기본 캡션을 제거하고 창 아이콘, 탭, 새 탭 버튼, 최소화, 최대화, 닫기 버튼이 있는 테마가 적용된 제목 표시줄을 그립니다. 애플리케이션의 sgcUI 테마(Classic 또는 Fluent, 라이트 또는 다크)가 그대로 적용됩니다. 창은 그림자, 크기 조절 테두리, 최대화 동작을 그대로 유지하며, 포인터를 최대화 버튼에 올리면 Windows 11이 스냅 레이아웃을 표시합니다. 마지막 탭 오른쪽의 빈 공간을 끌면 창이 이동합니다. Registered 에디션에서는 웹 브라우저처럼 사용자가 탭을 스트립 밖으로 끌어 새 창으로 만들고, 다른 창의 제목 표시줄에 놓을 수 있습니다.

  • Delphi와 C++ Builder의 TsgcVCLNavigationTabbedForm과 TsgcFMXNavigationTabbedForm, .NET의 TsgcWinFormsNavigationTabbedForm, TsgcWpfNavigationTabbedWindow, TsgcAvaloniaNavigationTabbedWindow
  • Tabs가 탭 스트립을 연결합니다. Delphi에서는 Notebook이 노트북의 스트립을 제목 표시줄로 옮기고 페이지는 노트북에 그대로 남습니다
  • 빈 스트립을 더블 클릭하면 창이 최대화되고, 오른쪽 클릭하면 시스템 메뉴가 표시됩니다
  • WPF와 Avalonia에서는 창의 연결 속성 Tabs로 XAML에서 설정합니다
  • Registered 에디션 전용 분리: TearOffMode는 분리한 탭을 포인터 아래의 창으로 옮기고, ttmNewForm은 포인터를 따라다니는 새 창을 OnCreateTearOffForm에서 엽니다

탭 폼은 Community를 포함한 모든 에디션에 들어 있습니다. 분리는 탭의 분리와 마찬가지로 Registered 에디션에 들어 있습니다. 테마가 적용된 프레임에는 데스크톱 컴포지션이 있는 Windows가 필요하며, FireMonkey에서는 Windows에서만 적용됩니다. macOS, Linux, iOS, Android에서는 기본 제목 표시줄이 그대로 유지됩니다.

도움말 항목 읽기 창 프레임 .NET 탭 폼

도킹 관리자

IDE 스타일의 작업 영역입니다. 도구 패널은 모든 면에 도킹되거나 자동 숨김 또는 플로팅되고, 가운데는 탭 문서 영역이며, 레이아웃은 JSON으로 저장됩니다.

왼쪽에 탭으로 묶인 Explorer와 Search, 자동 숨김된 Toolbox 스트립, 문서 탭 네 개, 오른쪽의 Properties, 아래쪽의 Output이 있는 도크 사이트. Output을 끄는 동안 문서 오른쪽 절반에 드롭 가이드와 미리 보기 사각형이 표시됩니다

도킹 관리자 Registered 에디션 전용

패널을 드롭 가이드로 끌기

도구 창이 많은 애플리케이션에는 사용자가 직접 배치할 수 있는 작업 영역이 필요합니다. TsgcVCLDockManager, TsgcFMXDockManager, TsgcWinFormsDockManager, TsgcWpfDockManager, TsgcAvaloniaDockManager는 도구 패널을 폼의 네 면에, 스플리터가 있는 중첩 분할과 탭 그룹으로 도킹합니다. 사용자가 캡션이나 탭을 끌면 드롭 가이드가 놓을 수 있는 위치를 보여 줍니다. 포인터 아래 그룹의 컴퍼스는 그 그룹을 한 면으로 분할하거나 패널을 그 그룹에 탭으로 넣고, 가장자리 가이드는 전체 사이트의 가장자리에 도킹하며, 강조 색의 미리 보기 사각형은 패널이 차지할 공간을 보여 줍니다. Esc를 누르면 끌기가 취소됩니다. Avalonia 도킹 페이지에서 TsgcAvaloniaDockManager를 XAML과 C#으로 보여 줍니다.

  • Panels.Add로 Name, Caption, Placement, DockSize를 지정하고, 직접 만든 컨트롤을 Control로 지정합니다
  • 코드에서 DockPanel, ClosePanel, ShowPanel, ActivatePanel
  • OnPanelDock은 도킹, 플로트, 자동 숨김 변경을 거부할 수 있습니다
  • 모든 캡션에 닫기, 고정, 최대화, 메뉴 버튼
도움말 항목 읽기 끌어서 놓기

도킹 관리자 Registered 에디션 전용

패널을 측면 스트립으로 자동 숨김

가끔만 필요한 도구 패널이 항상 공간을 차지해서는 안 됩니다. 캡션의 고정 버튼은 그룹을 자동 숨김합니다. 패널은 폼 측면의 얇은 스트립에 탭으로 표시되고, 탭 위에 마우스를 올리거나 클릭하면 패널이 콘텐츠 위로 밀려 나옵니다. 사용자가 다른 곳에서 작업하면 다시 들어가며, 플라이아웃의 고정 버튼은 그룹을 이전의 면과 크기로 다시 도킹합니다. iOS와 Android에서는 탭하면 플라이아웃이 열립니다.

  • 코드에서 Model.SetAutoHide(aPanel, True)
  • AutoHideDelay는 마우스 오버 지연 시간이며 기본값은 400 ms입니다
  • 패널별 CanAutoHide, 문서는 자동 숨김되지 않습니다
  • Alt+F7과 명령 팔레트로 자동 숨김된 패널의 플라이아웃을 엽니다
도움말 항목 읽기

도킹 관리자 Registered 에디션 전용

데스크톱의 플로팅 창

가이드에서 벗어난 곳에 놓은 패널은 자체 창에서 플로팅하며, 사용자는 이 창을 다른 위치나 다른 모니터로 옮길 수 있습니다. 플로트는 도크 사이트처럼 레이아웃을 담으므로 다른 패널을 나란히 또는 탭으로 도킹할 수 있고, 캡션을 더블 클릭하면 다시 도킹됩니다. 플로트는 폼이 소유하고 작업 표시줄에는 나타나지 않는 테두리 없는 도구 창이며, 직접 그린 캡션과 크기를 조절하는 테두리가 있고, 각 창은 자신이 놓인 모니터의 배율을 사용합니다. VCL, WinForms, WPF, Avalonia 데스크톱 애플리케이션과 Windows 및 macOS의 FireMonkey에서 동작합니다. iOS와 Android에서는 패널이 플로팅되지 않으며 끌기는 가이드만 표시합니다.

  • 코드에서 FloatPanel(aPanel, aLeft, aTop)
  • 도킹 관리자의 AllowFloating과 패널별 CanFloat
  • Placement := dplFloat는 패널을 FloatWidth x FloatHeight 크기로 플로팅 상태에서 시작합니다
  • 보이는 작업 영역 밖의 플로트는 레이아웃을 불러올 때 영역 안으로 돌아옵니다
도움말 항목 읽기

도킹 관리자 Registered 에디션 전용

가운데의 탭 문서 영역

도크 사이트의 가운데에는 문서가 들어갑니다. 문서 그룹이 하나 이상 있고, 각 그룹 위쪽에 탭 스트립이 있습니다. 이 스트립은 내비게이션 탭처럼 동작하며, 끌어서 순서 바꾸기, 고정 문서 우선 배치, 닫기 버튼, 수정됨 점, 가운데 클릭으로 닫기, Ctrl+Tab, 모든 탭의 목록을 지원합니다. 문서 탭을 컴퍼스의 측면 화살표로 끌면 영역이 나란히 또는 위아래로 놓인 두 문서 그룹으로 분할되고, 탭을 떼어 내면 플로팅되며, 더블 클릭하면 그 그룹이 최대화됩니다. 새 탭 버튼은 OnNewDocument를 발생시키며, 여기서 코드가 다음 문서를 만듭니다.

  • Kind := dpkDocument, 패널별 Pinned와 Modified
  • DocumentTabSizing, DocumentCloseButtons, DocumentShowNewButton, DocumentShowListButton
  • Ctrl+F6은 문서를 순환하고, OnActiveDocumentChange는 활성 문서를 알려 줍니다
  • OnPanelClose는 문서를 열린 상태로 유지할 수 있습니다
도움말 항목 읽기

도킹 관리자 Registered 에디션 전용

레이아웃 저장과 복원

사용자는 패널이 마지막에 둔 자리에 있기를 기대합니다. SaveLayout은 전체 배치를 간결한 JSON으로 기록합니다. 분할과 그 크기, 그룹과 활성 패널, 모든 면의 자동 숨김 그룹, 경계가 있는 플로트, 최대화된 그룹, 숨겨진 패널이 포함됩니다. LoadLayout은 다음 실행 때 이를 복원합니다. 텍스트는 Delphi와 .NET에서 같으므로 레이아웃 파일 하나를 둘 다에서 사용할 수 있습니다. 레이아웃에는 있지만 폼에는 아직 없는 패널, 예를 들어 열려 있던 문서는 OnRestorePanel로 전달되며, 여기서 코드가 콘텐츠를 만들거나 해당 패널을 버립니다.

  • SaveLayout, SaveLayoutToFile, SaveLayoutToStream
  • LoadLayout, LoadLayoutFromFile, LoadLayoutFromStream은 다른 형식의 텍스트에서는 False를 반환하고 아무것도 바꾸지 않습니다
  • 실행 중에 만들어지는 패널을 위한 OnRestorePanel
  • 패널마다 "Window" 명령이 있어 명령 팔레트가 창 전환기가 됩니다

FireMonkey, VCL, WinForms, WPF, Avalonia의 Registered 에디션이며 C++ Builder를 지원합니다. 키보드, UI Automation, 오른쪽에서 왼쪽, 테마, 고해상도 DPI가 포함됩니다.

도움말 항목 읽기

정보를 알려 주는 항목

행에는 캡션 이상이 담깁니다. 아이콘, 개수, 그리고 이미 작성한 로직으로 연결되는 링크입니다.

읽지 않은 개수를 알리는 배지

정보를 알려 주는 항목

읽지 않은 개수를 알리는 배지

사용자는 페이지를 열기 전에 주의가 필요한 것이 있음을 알아야 합니다. 항목에 읽지 않은 개수나 New 같은 단어를 Badge로 지정하면 바가 행의 오른쪽에 강조색 알약 모양으로 그리며, 글자는 더 잘 읽히는 검정 또는 흰색으로 표시됩니다. 값이 바뀔 때마다 코드에서 설정하면 바가 스스로 다시 그려집니다. 접힌 레일에서는 배지가 아이콘 위의 점이 됩니다. 배지는 일반 텍스트이므로 사용자 지정 그리기 코드 없이 같은 속성으로 개수, 짧은 라벨, 상태 문구를 모두 다룰 수 있습니다.

  • Badge는 항목별 짧은 텍스트입니다
  • 빈 Badge는 아무것도 그리지 않습니다
  • 알약은 테마 강조색 또는 사용자의 AccentColor를 사용합니다
  • Hint와 함께 사용해 개수를 설명합니다
도움말 항목 읽기
이미지 목록 또는 글리프 아이콘

정보를 알려 주는 항목

이미지 목록 또는 글리프 아이콘

모든 행에는 아이콘 자리가 있습니다. 이미 사용 중인 이미지 목록을 바에 지정하고 항목마다 ImageIndex를 설정하면, 마스크 또는 32비트 이미지는 한 번 변환되어 목록이 바뀔 때까지 캐시됩니다. 아직 이미지 목록이 없다면 대신 Glyph를 설정하세요. 테마 색상을 따르는 문자 또는 짧은 기호이며 데모가 바로 이런 모습입니다. 비활성 항목은 이미지를 40퍼센트 불투명도로 그려 상태를 한눈에 알 수 있습니다. 둘을 섞어 써도 괜찮습니다. 이미지 인덱스가 있는 항목은 이미지를 표시하고 나머지는 글리프로 대체되므로 아이콘을 점진적으로 추가할 수 있습니다.

  • 이미지 목록용 Images와 ImageIndex
  • 이미지 없이 문자나 기호를 쓰는 Glyph
  • VCL은 이미지를 원래 크기로 그립니다
  • Delphi XE8부터 FireMonkey 이미지 목록 지원
도움말 항목 읽기

정보를 알려 주는 항목 Registered 에디션 전용

항목을 TAction에 연결

TActionList 기반 애플리케이션은 이미 명령, 캡션, 활성화 규칙을 한곳에 두고 있습니다. 항목을 Action 속성으로 VCL 또는 FireMonkey TAction에 연결하면 Caption, Enabled, Visible, Hint, ImageIndex가 액션을 따릅니다. 클릭하면 바를 ActionComponent로 하여 액션이 실행되고 OnUpdate는 유휴 시간에 실행되므로, 액션이 비활성화되는 즉시 항목이 회색으로 바뀝니다. .NET에서는 Command와 CommandParameter가 같은 역할을 합니다. TActionList 하나로 폼의 메뉴, 툴바, 키보드 단축키를 모두 구동할 수 있습니다.

  • Action은 항목을 임의의 TBasicAction에 연결합니다
  • 항목의 OnClick이 액션 대신 실행됩니다
  • SGC_NAVIGATION_ACTIONS 아래에서 컴파일됩니다
  • .NET: ICommand를 사용하는 Command와 CommandParameter

Community: 액션 대신 항목의 OnClick 또는 바의 OnItemClick을 지정하세요.

도움말 항목 읽기

키보드, 테마, 출력

바가 네이티브처럼 느껴지고 애플리케이션의 나머지 부분과 일관되게 유지되도록 하는 세부 기능입니다.

키보드 우선 탐색

키보드, 테마, 출력

키보드 우선 탐색

파워 유저는 마우스 없이 페이지를 전환하며 접근성 검토에서도 이를 요구합니다. 바는 Tab으로 포커스를 받고, 포커스된 행은 표시되고 활성화된 항목 사이를 이동합니다. 위쪽과 아래쪽 화살표는 한 칸씩, Home과 End는 처음과 끝으로 이동하고 Enter 또는 Space로 활성화합니다. 아코디언에서는 왼쪽 화살표가 그룹을 접고 오른쪽 화살표가 펼칩니다. 점선 포커스 사각형은 키보드를 사용하는 동안에만 나타나며 포커스는 선택된 페이지와 별개입니다. FireMonkey 바에서도 CanFocus를 통해 같은 키가 동작하므로 데스크톱 사용자는 모든 플랫폼에서 같은 동작을 경험합니다.

  • TabStop은 VCL 바에서 기본으로 켜져 있습니다
  • 모델의 FocusedIndex가 키보드 행입니다
  • SelectedIndex는 선택된 페이지로 유지됩니다
  • 힌트는 접힌 레일에서 캡션을 표시합니다
도움말 항목 읽기
라이트, 다크, 사용자 강조 색상

키보드, 테마, 출력

라이트, 다크, 사용자 강조 색상

애플리케이션의 테마를 무시하는 메뉴는 따로 붙여 놓은 것처럼 보입니다. Theme는 공유 sgcUICore 토큰으로 표면, 테두리, 텍스트, 그룹 헤더, 마우스 오버, 강조 색상을 설정하므로 같은 Theme를 가진 바와 sgcDashboard가 정확히 일치합니다. AccentColor는 선택 막대, 포커스 사각형, 배지의 강조색을 브랜드 색상으로 바꿉니다. 대시보드 타일에 들어 있는 바는 대시보드의 테마를 스스로 따릅니다. 실행 중에 테마를 전환하면 바가 즉시 다시 그려지므로 설정 페이지의 다크 모드 토글에 바로 사용할 수 있습니다.

  • Theme: utDefault(기본값, 애플리케이션 테마를 따름), utLight 또는 utDark
  • $AARRGGBB 값인 AccentColor, 0이면 테마 강조색을 유지합니다
  • 모든 sgcUI 제품과 같은 토큰
  • 대시보드 타일이 자신의 테마를 바에 전달합니다
도움말 항목 읽기
창 없이 바 렌더링

키보드, 테마, 출력

창 없이 바 렌더링

문서, 시각 테스트, 웹 백엔드에서는 메뉴 자체가 아니라 메뉴의 그림이 필요한 경우가 있습니다. sgcNavigation_Render의 렌더러는 창도 VCL이나 FireMonkey도 없이 TsgcNavigationModel을 그리므로, 콘솔 프로그램, 서비스, 서버에서도 동일한 바를 PNG 또는 SVG로 만들 수 있습니다. 이 유닛은 Linux64를 포함한 모든 플랫폼에서 빌드되며 scale 매개변수로 고DPI 화면용 선명한 이미지를 얻을 수 있습니다. 렌더러에 이미지 목록을 전달하면 내보낸 그림에도 실행 중인 애플리케이션과 같은 아이콘이 표시됩니다.

  • sgcNavigationSaveToPNG는 PNG 파일 또는 스트림을 씁니다
  • sgcNavigationSaveToSVG는 같은 바를 SVG로 씁니다
  • sgcNavigationRender는 임의의 sgcUICore 캔버스에 그립니다
  • 논리 픽셀 단위의 너비와 높이에 scale을 곱한 값
도움말 항목 읽기

sgcNavigation 동작 보기

sgcUI 제품군 데모 속의 sgcNavigation: 내장 시뮬레이션 데이터로 오프라인에서 실행되는 완전한 애플리케이션입니다.

sgcNavigation로 개발하는 사람들

ERP와 관리자 앱을 위한 현대적인 셸

이미 수십 개의 폼이 있고 메인 창은 여전히 메뉴 바에서 폼을 여는 구조입니다. 왼쪽에 영역마다 항목 하나씩 사이드바를 두고, OnSelectionChange로 탭이 숨겨진 TPageControl의 탭을 전환하세요. 배지는 처리 대기 중인 주문이나 읽지 않은 메시지를 보여 주고, 아이콘 레일은 폼에 공간을 돌려줍니다. SidebarApp을 실행하면 sgcDashboard 페이지와 함께 이 패턴이 동작하는 모습을 볼 수 있습니다.

  • 사이드바 모드
  • 배지
  • 아이콘 레일로 접기
SidebarApp 데모 실행

설정 및 관리 콘솔

설정 화면은 Sales, Inventory, Admin 같은 몇 개의 제목 아래 수십 개의 페이지를 묶습니다. 아코디언은 한 번에 한 섹션만, 또는 AllowMultiExpand로 여러 섹션을 열어 두며, 액션 링크는 TActionList의 명령과 활성화 규칙을 그대로 재사용합니다. 키보드 사용자는 화살표 키로 섹션 사이를 이동합니다. Accordion 데모는 그룹 세 개, 펼침 토글, 클릭 로그를 보여 줍니다.

  • 아코디언 모드
  • 액션 링크
  • 키보드 탐색
Accordion 데모 실행

모든 플랫폼에서 같은 내비게이션

Windows, macOS, iOS, Android에서 실행되는 FireMonkey 애플리케이션이 플랫폼마다 다른 메뉴를 필요로 해서는 안 됩니다. TsgcFMXNavigationBar는 VCL 바와 같은 항목, 모드, 이벤트를 가지며 WinForms, WPF, Avalonia용 .NET 바도 같은 이름을 따릅니다. Delphi 데스크톱 앱과 .NET 도구를 함께 배포하는 팀은 하나의 사고 모델을 유지할 수 있습니다. SidebarFMX는 사이드바 데모의 FireMonkey 버전입니다.

  • FireMonkey 바
  • 테마
  • .NET 바
SidebarFMX 데모 실행

A Navigation Bar in a Few Lines

FireMonkey, C#, Delphi VCL, C++ Builder에서 같은 API를 사용합니다. 그룹, 배지, 비활성 항목, Collapse 버튼이 있는 아코디언 바입니다. FireMonkey와 C# 탭에서는 탭 스트립과 명령 팔레트가 추가됩니다.

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;

브라우저 스타일 창: TsgcVCLNavigationTabbedForm이 탭 스트립을 테마가 적용된 제목 표시줄로 옮깁니다.

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

sgcNavigation 데모 실행하기

NavigationShell과 DockingShell 데모는 FireMonkey, VCL, WinForms, WPF, Avalonia용으로 포함되어 있습니다. 사이드바 데모는 FireMonkey용으로 포함되어 있고, SidebarApp과 Accordion 데모는 .NET 에디션에 WinForms, WPF, Avalonia 프로젝트로, 그리고 Delphi VCL과 C++ Builder용으로 포함되어 있습니다.

NavigationShellFMX

Registered 에디션 전용 NavigationShellFMX

FireMonkey용 완전한 내비게이션 셸입니다(Delphi 전용). 왼쪽에 검색 행이 있는 트리, 열린 페이지마다 하나의 탭, 트리를 따라가는 브레드크럼, 바 항목과 액션 리스트를 나열하는 명령 팔레트(Ctrl+Shift+P)를 갖추고 있습니다. 다크 테마와 오른쪽에서 왼쪽 레이아웃 전환 스위치가 포함되어 있습니다. 팔레트를 사용하므로 Registered 에디션 또는 체험판이 필요합니다.

Registered 에디션 전용 NavigationShell

VCL용 같은 셸로, 위쪽의 작은 리본에 있는 명령도 트리 항목, 액션 리스트의 액션과 함께 'Tab > Group' 경로로 명령 팔레트에 나타납니다. 다크 테마와 오른쪽에서 왼쪽 레이아웃 전환 스위치가 포함되어 있습니다.

Registered 에디션 전용 .NET용 NavigationShell

.NET 에디션의 내비게이션 셸입니다. WinForms용 NavigationShell, NavigationShellWpf, NavigationShellAvalonia가 있으며, 각각 트리와 검색, 탭, 브레드크럼, 명령 팔레트를 갖추고 있습니다.

DockingShell

Registered 에디션 전용 DockingShell과 DockingShellFMX

도킹 관리자 위에 구성한 IDE 스타일 셸로, VCL과 FireMonkey용입니다. 왼쪽에는 Explorer로 사용하는 내비게이션 바 트리, 오른쪽에는 Properties, 아래쪽에는 자동 숨김된 Output, 가운데에는 고정 탭과 수정됨 탭이 있는 메모 문서가 있습니다. 명령 팔레트는 패널마다 Window 명령 하나를 나열하며, 테마 전환과 Reset layout 버튼이 포함되고, 레이아웃은 닫을 때 JSON으로 저장되어 다음 실행 때 불러옵니다.

Registered 에디션 전용 .NET용 DockingShell

.NET 에디션의 도킹 셸입니다. WinForms용 DockingShell, DockingShellWpf, DockingShellAvalonia가 있으며, 각각 도킹, 자동 숨김, 플로팅 패널과 문서 영역, 저장된 레이아웃을 갖추고 있습니다.

TabbedForm and TabbedFormFMX

탭이 제목 표시줄에 들어가는 브라우저 스타일 창으로, VCL용과 FireMonkey용이 있으며 C++ Builder 쌍둥이도 있습니다. 새 탭 버튼, 닫기 버튼, 라이트, 다크, Fluent 라이트, Fluent 다크가 있는 테마 선택기를 갖추고 있습니다. 탭을 스트립 밖으로 끌면 포인터를 따라다니는 새 창에서 열리며, 그것을 다른 창의 제목 표시줄에 놓을 수 있습니다. 분리에는 Registered 에디션이 필요합니다. .NET 에디션에서는 WinForms용 TabbedForm, TabbedFormWpf, TabbedFormAvalonia로 제공됩니다.

SidebarFMX

FireMonkey용 TsgcFMXNavigationBar로 만든 사이드바 데모이며 Delphi 전용입니다. VCL 버전과 같은 항목, 모드, 이벤트를 가지며 Windows, macOS, 모바일 대상에서 사용할 수 있습니다.

SidebarApp

SidebarApp

아이콘, 배지, 비활성 항목, Collapse 버튼, 테마 콤보, sgcDashboard KPI 페이지를 갖추고 탭이 숨겨진 페이지 컨트롤을 구동하는 사이드바입니다. 애플리케이션 셸 패턴을 처음부터 끝까지 보여 줍니다.

Accordion

Registered 에디션 전용 Accordion

Sales, Inventory, Admin 그룹 세 개, AllowMultiExpand 토글, 액션 링크, 클릭 로그가 있습니다. 액션 링크를 사용하므로 Registered 또는 체험판 에디션이 필요합니다.

컴파일된 데모

sgcUI 제품 전체의 실행 파일을 제공하며, 설치가 필요 없습니다.

sgcUI_bin.zip 다운로드 →

시작하기 가이드

Delphi(VCL)용 QuickStart 데모 다섯 개가 Demos\Navigation\Delphi\00.QuickStart에 포함되어 있습니다. PDF 가이드가 단계별로 안내하는 내용은 다음과 같습니다. 첫 번째 내비게이션 바, 코드로 만드는 메뉴, 문서 탭, 테마와 스타일, 작은 메일 클라이언트.

가이드 다운로드 (PDF, 영어) →

sgcNavigation과 RAD Studio 13.2 VCL 컨트롤 중 무엇을 선택할까요?

RAD Studio 13.2 Florence는 TNavigationView와 TTabView라는 두 가지 VCL 컨트롤을 추가했습니다. 애플리케이션이 VCL 전용이고 13.2 이상으로 빌드한다면 이 컨트롤은 훌륭한 기본 제공 선택지입니다. 같은 내비게이션이 FireMonkey와 .NET에서도 동작해야 할 때, 이전 Delphi 버전으로 빌드할 때, 브레드크럼, 명령 팔레트, 검색이 있는 트리가 필요할 때 sgcNavigation이 가치를 발휘합니다.

TNavigationView는 일반 및 컴팩트 모드, 이미지, 여러 줄 텍스트, 스크롤, 끌어서 순서 바꾸기를 지원하는 세로 항목 목록으로, 항목을 페이지 컨트롤, 프레임, TCardPanel에 바인딩합니다. TTabView는 TTabSet의 현대적인 변형으로, 탭에 폼이나 다른 컨트롤을 담을 수 있고 탭마다 이미지, 여러 줄 텍스트, 닫기 버튼이 있으며 탭 추가 버튼, 모든 탭의 드롭다운 목록, 스크롤 버튼도 제공합니다. 둘 다 잘 설계되어 있고 VCL 프로그래밍 모델을 따르므로 13.2의 새 VCL 프로젝트에서는 사용해 볼 만합니다.

sgcNavigation은 모든 호스트 뒤에 프레임워크 독립 모델 하나와 헤드리스 렌더러 하나를 유지합니다. 바와 이번 릴리스에서 추가되는 탭, 브레드크럼, 다단계 트리, 명령 팔레트는 FireMonkey, WinForms, WPF, Avalonia, Delphi 7부터 13의 VCL에서 똑같이 동작하므로 데스크톱, 모바일, .NET 프런트엔드를 가진 제품도 어디서나 똑같이 탐색됩니다.

항목sgcNavigationTNavigationView와 TTabView(VCL, RAD Studio 13.2)
프레임워크FireMonkey, WinForms, WPF, Avalonia, VCLVCL
Delphi 및 C++ Builder 버전Delphi 7부터 13(VCL), Delphi XE6부터 13(FireMonkey), C++ Builder 2007부터 13RAD Studio 13.2 이상
.NET 호스트.NET Framework 4.7.2, .NET 8, 9, 10의 WinForms, WPF, Avalonia해당 없음, VCL 컨트롤입니다
Linux에서의 헤드리스 렌더링Delphi 10.2부터 Linux64에서 PNG 및 SVG 출력13.2 문서에는 설명되어 있지 않습니다
프레임워크 간 공유 모델Delphi와 .NET에서 같은 이름을 쓰는 프레임워크 독립 모델 하나13.2 문서에는 설명되어 있지 않습니다
브레드크럼바의 선택된 노드를 따라갈 수 있는 브레드크럼 바13.2 문서에는 설명되어 있지 않습니다
명령 팔레트명령, 항목, 액션에 대한 퍼지 검색을 갖춘 키보드 중심 팔레트13.2 문서에는 설명되어 있지 않습니다
트리 내 검색일치 항목의 부모를 계속 보이게 하는 검색 행이 있는 다단계 트리13.2 문서에는 설명되어 있지 않습니다

TNavigationView와 TTabView에 대한 내용은 Embarcadero의 RAD Studio 13 Florence Release 2 노트에서 가져왔습니다.

sgcNavigation가 포함된 곳

sgcNavigation은 Standard부터 시작하는 모든 sgcUI 에디션에 포함되어 있으며 단독으로도 판매됩니다. 또한 All-Access 번들에도 포함되어 있습니다.

sgcNavigation 단일 패키지

€149 / 개발자, 전체 소스 코드, 1년 업데이트.

sgcNavigation 구매 → 가격 보기 →

sgcUI Standard

sgcNavigation, sgcGrid, sgcToolbar 및 sgcEditors, €380부터.

Standard 보기 →

sgcUI Professional

Standard에 sgcCharts, sgcDashboard 및 sgcGauges 추가, €529부터.

Professional 보기 →

sgcUI Enterprise

sgcUI 제품 17개 전체, €699부터.

Enterprise 보기 →

무료 Community 에디션(NuGet의 esegece.sgcNavigation.Community)에는 트리 모드와 검색이 있는 바, 기본 탭과 브레드크럼, 제목 표시줄에 탭을 넣는 탭 폼, 명령 소스 인터페이스가 포함됩니다. Registered 에디션은 명령 팔레트, 탭 순서 바꾸기, 고정 탭, 분리와 탭 배치 저장, 브레드크럼 편집 모드, 도킹 관리자, 항목의 액션 링크를 추가합니다.

기능Community (무료)Registered 에디션
사이드바 및 아코디언 모드✓✓
애니메이션 아이콘 레일로 접기✓✓
아이콘, 글리프, 배지✓✓
키보드 탐색✓✓
라이트 및 다크 테마, 강조 색상✓✓
헤드리스 PNG 및 SVG 출력✓✓
다단계 트리 모드와 검색✓✓
탭: 크기 조정, 닫기 버튼, 목록 및 새 탭 버튼, 스크롤, 키보드✓✓
탭 폼: 테마가 적용된 제목 표시줄의 탭✓✓
브레드크럼: 세그먼트, 갈매기 표시, 오버플로, 바에 바인딩✓✓
명령 소스(IsgcUICommandSource)✓✓
명령 팔레트−✓
끌어서 탭 순서 바꾸기, 고정 탭, 분리, 탭 배치 저장−✓
탭 폼을 새 창으로 분리−✓
브레드크럼 편집 모드−✓
도킹 관리자−✓
액션 링크(Delphi)와 Command(.NET)−✓

지원 프레임워크 및 플랫폼

sgcNavigation의 컴포넌트

컴포넌트대상
TsgcFMXNavigationBarDelphi 및 C++ Builder, FireMonkey (sgcNavigation_FMX)
TsgcWinFormsNavigationBar.NET, WinForms
TsgcWpfNavigationBar.NET, WPF
TsgcAvaloniaNavigationBar.NET, Avalonia
TsgcVCLNavigationBarDelphi 및 C++ Builder, VCL (sgcNavigation_VCL)
TsgcFMXNavigationTabs, TsgcFMXNavigationBreadcrumb, TsgcFMXCommandPaletteDelphi 및 C++ Builder, FireMonkey (sgcNavigation_Tabs_FMX, sgcNavigation_Palette_FMX)
TsgcWinFormsNavigationTabs, TsgcWpfNavigationTabs, TsgcAvaloniaNavigationTabs.NET, WinForms, WPF, Avalonia, 해당하는 Breadcrumb 및 CommandPalette 클래스 포함
TsgcVCLNavigationTabs, TsgcVCLNavigationBreadcrumb, TsgcVCLCommandPaletteDelphi 및 C++ Builder, VCL (sgcNavigation_Tabs_VCL, sgcNavigation_Palette_VCL)
TsgcVCLNavigationTabbedForm, TsgcFMXNavigationTabbedFormDelphi 및 C++ Builder, VCL 및 FireMonkey (sgcNavigation_TabbedForm_VCL, sgcNavigation_TabbedForm_FMX), Windows의 테마 제목 표시줄
TsgcWinFormsNavigationTabbedForm, TsgcWpfNavigationTabbedWindow, TsgcAvaloniaNavigationTabbedWindow.NET, WinForms, WPF, Avalonia
TsgcVCLDockManager, TsgcFMXDockManagerDelphi 및 C++ Builder, VCL 및 FireMonkey (sgcNavigation_Dock_VCL, sgcNavigation_Dock_FMX), Registered 에디션
TsgcWinFormsDockManager, TsgcWpfDockManager, TsgcAvaloniaDockManager.NET, WinForms, WPF, Avalonia, Registered 에디션
TsgcNavigationItem, TsgcNavigationItems, TsgcNavigationModel프레임워크 중립 모델 (sgcNavigation_Model)
대상컴포넌트플랫폼
Delphi XE6부터 13, FireMonkeyTsgcFMXNavigationBarWindows, macOS, iOS, Android, Linux(FMXLinux)
.NET Framework 4.7.2, .NET 8, 9 및 10TsgcWinFormsNavigationBar, WPF 및 Avalonia 바WinForms, WPF, Avalonia
Delphi 7부터 13, VCLTsgcVCLNavigationBarWin32 및 Win64
C++ Builder 2007부터 13TsgcVCLNavigationBar, TsgcFMXNavigationBar생성된 .hpp 헤더와 정적 라이브러리
Delphi 10.2부터 13, 프레임워크 중립모델과 헤드리스 PNG 및 SVG 렌더러Linux64, 예를 들어 서버에서 바를 렌더링할 때

자주 묻는 질문

애플리케이션이 VCL 전용이라면 RAD Studio 13.2의 TNavigationView와 TTabView는 훌륭한 기본 제공 선택지이며 기꺼이 추천합니다. 같은 내비게이션이 macOS, iOS, Android, Linux의 FireMonkey나 WinForms, WPF, Avalonia 애플리케이션에서도 동작해야 하거나, 팀의 일부가 아직 이전 Delphi나 C++ Builder로 빌드하거나, 사이드바 위에 브레드크럼, 명령 팔레트, 검색이 있는 다단계 트리를 원한다면 sgcNavigation이 더 좋은 선택입니다. 모델과 헤드리스 PNG 및 SVG 렌더러는 모든 호스트가 공유합니다. 비교 표는 선택하기를 참고하세요.

네, Registered 에디션에 있습니다. TsgcFMXCommandPalette, TsgcVCLCommandPalette와 WinForms, WPF, Avalonia 팔레트는 Ctrl+Shift+P로 열리고, 사용자가 입력하는 동안 명령을 퍼지 매칭으로 정렬하며, 최근에 사용한 명령을 먼저 보여 줍니다. 팔레트는 자체 명령 외에도 추가한 모든 명령 소스를 나열합니다. 내비게이션 바의 항목, Delphi의 리본이나 도구 모음 명령, 액션 리스트의 액션, 또는 IsgcUICommandSource 인터페이스를 통한 직접 만든 소스입니다. .NET에서는 명령이 ICommand를 가질 수 있습니다. 명령 팔레트를 참고하세요.

둘 다입니다. Mode 속성이 같은 컨트롤에서 nbmSidebar와 nbmAccordion을 전환하며 항목과 이벤트는 동일하므로, 프로젝트 후반에 마음을 바꾸거나 사용자 설정으로 두 스타일을 모두 제공할 수 있습니다. 각 모드도 접힌 아이콘 레일로 접힙니다.

네. OnSelectionChange를 처리하고 SelectedIndex에 해당하는 페이지를 표시하면 되며, 예를 들어 탭이 숨겨진 TPageControl의 탭이나 필요할 때 생성하는 프레임이 있습니다. SidebarApp 데모가 정확히 이렇게 만들어져 있으며 sgcDashboard KPI 페이지를 호스팅합니다.

네. TsgcFMXNavigationBar는 Delphi XE6부터 Windows, macOS, iOS, Android, Linux(FMXLinux)를 지원하며 VCL 바와 같은 항목, 모드, 이벤트를 가집니다. FireMonkey 이미지 목록은 Delphi XE8 이상이 필요하며, 이전 버전에서는 각 항목의 Glyph를 사용합니다.

명령 팔레트, 탭 끌어서 순서 바꾸기, 고정 탭과 분리, 브레드크럼 편집 모드, 도킹 관리자, 항목의 액션 링크이며, 액션 링크는 .NET에서는 Command와 CommandParameter 속성에 해당합니다. 액션 링크 대신 항목의 OnClick 또는 바의 OnItemClick을 사용하세요. 트리와 검색, 탭, 아이콘 레일, 배지, 테마, 헤드리스 출력을 포함한 다른 모든 기능은 Community에 들어 있습니다. 에디션을 참조하세요.

아니요. .NET 포트에는 디자이너 동작이나 컬렉션 편집기가 없어 항목이 직렬화되지 않으므로, 보통 폼이나 창의 생성자에서 코드로 추가합니다. Delphi와 C++ Builder에서는 Items 컬렉션을 표준 컬렉션 편집기로 디자인 타임에 편집합니다.

네. 모든 크기는 논리 픽셀에 모니터의 배율을 곱한 값이므로 행, 아이콘, 배지가 어떤 DPI에서도 선명합니다. WinForms에서는 VCL과 마찬가지로 너비와 높이가 DPI / 96으로 조정되며, WPF와 Avalonia에서는 장치 독립 단위를 사용합니다.

네. sgcNavigationSaveToPNG와 sgcNavigationSaveToSVG는 창도 VCL이나 FireMonkey도 없이 모델에서 바를 렌더링하며, Delphi 10.2부터는 Linux64에서도 가능합니다. 문서, 시각적 회귀 테스트, 애플리케이션의 메뉴를 보여 주는 웹 페이지에 사용하세요.

아니요. iOS와 Android에서 TsgcFMXDockManager의 패널은 도킹, 분할, 탭, 자동 숨김은 되지만 플로팅되지 않습니다. AllowFloating은 False로 고정되고, 마우스 오버가 없으므로 탭하면 자동 숨김된 패널이 열리며, 길게 누르면 패널 메뉴가 열리고, 끌기는 드롭 가이드만 표시합니다. 플로팅 창은 VCL, WinForms, WPF, Avalonia 데스크톱 애플리케이션과 Windows 및 macOS의 FireMonkey에서 동작합니다. 데스크톱에서 저장한 레이아웃도 휴대폰에서 불러올 수 있으며, 그 플로트의 패널은 초기 배치를 유지합니다. 플로팅 창을 참조하세요.

sgcNavigation 도움말

3,000+개발자
20+년
761+컴포넌트
30+API 통합
5플랫폼
30일 환불 보장만족하지 않으세요? 구매 후 30일 이내에 전액 환불을 요청하세요. 환불 정책 보기

오늘 sgcNavigation 체험하기

sgcUI 체험판에는 sgcNavigation과 다른 모든 sgcUI 제품이 포함되어 있습니다.