트레이딩 및 시장 데이터 데스크
호가판은 수백 개의 가격이 매초 바뀌는 중에도 읽을 수 있어야 합니다. 피드 스레드는 UpdateRow로 쓰며 UI를 기다리지 않고, 변경 시 깜박임은 모든 움직임의 방향을 보여 주며, 테일 모드는 체결 로그를 최신 체결에 맞춰 둡니다. sgcGridWS 브리지는 WebSocket, MQTT, SSE에서 호가를 읽을 수 있습니다.
- 실시간 업데이트
- 변경 시 깜박임
- 테일 모드
- 실시간 피드
쉴 새 없이 변하는 데이터를 위해 만든 그리드입니다. 어떤 스레드에서든 키로 행을 쓰고, 변경된 셀이 녹색 또는 빨간색으로 깜박이는 것을 확인한 다음, 같은 행을 그룹화, 필터링, 편집, 내보내기하세요. 행 100,000개 그리드의 1080p 프레임은 Win32에서 3.0 ms가 걸립니다.
MaxFPS로 조절됩니다.기능 23가지를 6개 그룹으로 나누었으며, 각각 해당 도움말 항목으로 연결됩니다.
멈추지 않는 피드: 가격, 텔레메트리, 큐, 로그.
실시간 데이터
시장 피드, 센서 버스, 작업 큐가 그리드에 바로 쓸 수 있습니다. 모든 행에는 키가 있고, 작업자 스레드는 Synchronize 호출이나 별도의 잠금 코드 없이 필드 이름으로 키의 행을 갱신합니다. 그리드는 쓰기 스레드에서 자신을 더티로 표시하기만 하고, 메인 스레드에서 초당 최대 MaxFPS번만 다시 그립니다.
UpdateRow는 키에 해당하는 이름 있는 필드를 설정하고 키가 새 것이면 행을 삽입하며, UpdateCell은 필드 하나를 변경합니다AppendRow와 DeleteRow는 어떤 스레드에서든 키로 행을 추가하고 제거합니다BeginUpdate와 EndUpdate는 일괄 처리를 단일 알림으로 바꿉니다
실시간 데이터
트레이더와 운영자는 모든 숫자를 읽지 않고도 무엇이 움직였는지 알아야 합니다. 기본값인 FlashChanges를 켜면 값이 오른 셀은 녹색, 내린 셀은 빨간색으로 물들었다가 FlashDuration밀리초(기본 800) 동안 서서히 사라집니다. 로그와 계속 늘어나는 피드에서는 테일 모드가 최신 행을 계속 보여 주다가, 사용자가 읽으려고 위로 스크롤하는 즉시 따라가기를 멈춥니다.
FlashUpColor, FlashDownColor, FlashChangedColor. 색상 0은 테마 기본값을 사용합니다FlashMode는 배경(fmBackground) 또는 텍스트(fmText)를 물들입니다TailMode는 최신 행을 따라가고, MaxRows는 끝없는 로그에서 가장 오래된 행을 삭제합니다
실시간 데이터
연체된 송장, 마이너스 잔액, 실패한 작업은 누가 묻기 전에 눈에 띄어야 합니다. 서식 규칙은 열의 데이터 형식에 맞춰 열 값을 비교합니다. 숫자는 숫자로, 날짜는 날짜로, 텍스트는 대소문자 구분 없이 비교합니다. 일치하는 규칙은 셀 또는 행 전체의 배경색, 글자색, 굵게를 설정하며, 실시간 업데이트로 값이 바뀌는 동안에도 계속 동작합니다.
TsgcGridFormatRules는 규칙을 컬렉션 순서대로 평가하며, 나중에 일치하는 규칙이 앞의 규칙을 덮어씁니다gfoLess, gfoBetween, gfoContains, gfoIsEmpty 같은 연산자를 지원합니다ApplyToRow는 행의 모든 셀에 스타일을 적용하고, StopOnMatch는 셀에 대한 평가를 끝냅니다OnGetCellStyle이 최종 결정권을 가집니다OnGetCellFont는 모든 셀의 글꼴 스타일과 크기를 설정합니다AddIconSet은 두 개의 임계값을 기준으로 화살표, 원, 깃발, 확인 표시를 열에 넣으며, 규칙은 직접 만든 아이콘이나 이미지도 표시할 수 있습니다실시간 데이터
운영자 화면에는 모든 알람을 한곳에 나열하고, 어떤 알람이 아직 확인을 기다리는지 보여 주며, 운영자가 바로 조치할 수 있게 해 주는 목록이 필요합니다. 알람 모델은 알람을 ISA-18.2 상태와 우선순위 1~4로 관리하고, 알람 링크는 이를 태그당 한 행씩 그리드에 기록하며 우선순위 색상과, 아직 확인하지 않은 알람의 깜박이는 행을 적용합니다. 애플리케이션은 자체 한계값에 따라 알람을 발생시키고 해제하며, 운영자는 컨텍스트 메뉴에서 알람을 확인, 보류, 보류 해제합니다.
TsgcGridAlarmModel: RaiseAlarm, ClearAlarm, Acknowledge, AcknowledgeAll, Shelve, UnshelveFilterPriorities, FilterStates, FilterText, 그리고 JSON 또는 CSV로 내보내기TsgcGridAlarmLink와 TsgcVCLGridAlarmMenu, FireMonkey용도 있으며 .NET에서는 WinForms, WPF, Avalonia용도 있습니다모델, 링크, 메뉴는 Community를 포함한 모든 에디션에 있습니다. Log와 OnLog가 있는 확인 로그는 Registered 에디션 기능입니다. 알람 목록은 sgcUI HMI Pack의 일부입니다.
대용량 행 집합을 정렬, 필터링, 그룹화, 중첩합니다.
데이터 가공하기
지역별 매출, 월별 주문, 상태별 티켓처럼 사용자는 원시 행이 아니라 합계를 원합니다. GroupBy는 하나 이상의 열로 그리드를 그룹화하며, 모든 그룹 행에는 구성원, 행 수, 행 요약이 표시됩니다. 사용자는 머리글을 그룹 패널로 끌어서 직접 다시 그룹화합니다. 그룹화는 보기 상태일 뿐이므로, 그리드에 바인딩된 차트는 여전히 평면으로 정렬된 행을 봅니다.
GroupBy와 ClearGrouping을 호출하거나 열별로 GroupIndex를 지정합니다ShowGroupPanel은 끌어서 놓는 칩을 추가하며, 칩을 클릭하면 그룹 순서가 바뀝니다SummaryType은 gsuSum, gsuCount, gsuAverage, gsuMin, gsuMax 중 하나이며 SummaryFormat으로 서식을 지정합니다GroupSummaries와 총합계를 위한 ShowFooterDisplayFormat이 yyyy-mm이면 날짜를 월별로 그룹화합니다
데이터 가공하기
수천 명 중에서 고객 한 명을 찾는 일은 키 몇 번으로 끝나야 합니다. FilterText는 표시된 열 중 하나에라도 입력한 단어가 서식이 적용된 텍스트에 들어 있는 행만 남기고, OnFilterRow 핸들러로 사용자 규칙을 더할 수 있습니다. 머리글을 클릭하면 정렬되고, Ctrl 키를 누르고 클릭하면 다중 열 정렬에 열이 추가되며, 정렬은 안정적입니다. 정렬도 필터도 되지 않은 채 값이 계속 바뀌는 열은 다시 정렬할 필요가 전혀 없습니다.
SortOrder와 SortIndex, 변경할 때마다 OnSortChangeFilterText는 대소문자를 구분하지 않으며 사용자에게 보이는 텍스트를 기준으로 읽습니다OnFilterRow, 로직이 바뀌면 InvalidateViewSelectionMode는 행 또는 셀을 선택하고, Ctrl+C는 탭으로 구분된 텍스트로 복사합니다
데이터 가공하기 Registered 에디션 전용
조직도나 자재 명세서는 트리로, 고객의 주문은 고객 바로 아래에 있을 때 가장 읽기 좋습니다. 트리 행은 키 열과 부모 열을 기준으로 깊이 우선으로 행을 배치합니다. 상세 영역은 모든 마스터 행 아래에 관련 행의 작은 그리드를 열며, 자체 머리글, 스크롤, 정렬을 갖고 TsgcGridDataStore, 다른 그리드 또는 이벤트로 채워집니다.
Tree.KeyField와 Tree.ParentField가 트리를 켜며, ExpandNode와 CollapseNode는 코드에서 동작합니다Detail.MasterKeyField와 Detail.DetailKeyField가 영역을 소스에 연결하고, OnGetDetailData가 필요할 때 채웁니다.NET Community 빌드에는 없으며, 그룹화는 지원합니다.
도움말 항목 읽기
데이터 가공하기 Registered 에디션 전용
연락처 목록, 제품 카탈로그, 티켓 대기열은 표보다 카드로 볼 때 더 읽기 쉬운 경우가 많습니다. ViewStyle을 gvsCard로 설정하면 그리드가 모든 행을 카드로 그립니다. 카드에는 선택 사항인 캡션 막대, 선택 사항인 이미지, 그리고 보이는 열마다 열 캡션과 값이 있는 한 줄이 들어 있습니다. 카드는 표와 같은 행을 보여 주므로 정렬, 필터, 찾기 패널, 선택, 편집, 서버 모드가 두 보기에서 모두 동작하며, 속성 하나로 실행 중에 보기를 전환할 수 있습니다.
CardOptions가 CaptionField, 필드 위나 옆에 놓는 ImageField, CardWidth, 한 밴드에 놓는 카드 수를 설정합니다카드 보기는 그룹화하지 않으며 열 머리글, 필터 행, 바닥글을 그리지 않습니다. VCL, FireMonkey, WinForms, WPF, Avalonia에서 사용할 수 있으며 .NET Community 빌드에는 없습니다.
도움말 항목 읽기
데이터 가공하기
너비가 넓은 그리드는 종목 또는 고객 이름이 스크롤되어 사라지면 맥락을 잃습니다. FrozenColumns는 나머지 열이 가로로 스크롤되는 동안 처음 보이는 열들을 제자리에 유지하며, 머리글, 바닥글, 그룹 요약도 같은 구분을 따릅니다. 사용자는 머리글 가장자리를 끌어 열 크기를 조절하고, 헤드리스 렌더러도 같은 설정을 사용하므로 내보낸 이미지가 화면과 일치합니다. 왼쪽의 그룹 화살표도 스크롤되지 않습니다.
FrozenColumns는 보이는 열의 수를 세며, 1픽셀 선이 고정 경계를 표시합니다FrozenWidth는 스크롤되지 않는 너비를 반환합니다MinWidth는 크기 조절을 제한하고, OnColumnResized는 새 너비를 알려 줍니다
데이터 가공하기
사용자는 Excel에서 익숙한 깔대기를 기대합니다. ShowFilterButtons는 모든 열 머리글에 깔대기를 하나씩 놓습니다. 누르면 해당 열의 고유 값과 행 수, 검색 상자, And 또는 Or로 연결한 형식 지정 조건 최대 2개가 있는 팝업이 열립니다. ShowFilterRow는 머리글 아래에 입력하는 동안 열을 필터링하는 행을 추가하고, Ctrl+F로 여는 찾기 패널은 모든 셀에서 텍스트를 강조 표시하며 일치 항목 사이를 이동합니다.
Column.Filter가 모두 이를 수정하므로 세 가지는 항상 일치합니다FilterRowOperator: 같음, 보다 큼, 포함, 시작 문자, 비어 있음 등FindText, FindNext, FindPrevious는 코드에서도 쓸 수 있고, FindOnlyMatches는 일치하지 않는 행을 숨깁니다FilterText 및 OnFilterRow와 함께 적용되며, OnFilterChange가 변경될 때마다 알려 줍니다FirstDayOfWeek로 정합니다VCL, FireMonkey, WinForms, WPF, Avalonia 그리드에서 사용할 수 있으며, 무료 .NET Community 빌드에도 포함됩니다.
도움말 항목 읽기데이터 가공하기
열 머리글을 마우스 오른쪽 버튼으로 클릭하면 정렬, 그룹화, 너비 맞춤, 필터링, 열 선택기 열기를 할 수 있는 메뉴가 나타납니다. 열 선택기는 열마다 확인란이 있는 팝업입니다. 사용자는 머리글을 끌어 열을 옮길 수 있고, 머리글 가장자리를 더블 클릭하면 너비가 캡션과 셀에 맞춰집니다. SaveLayoutToString과 LoadLayoutFromString은 이 모든 것을 짧은 JSON 텍스트로 저장하므로, 그리드는 사용자가 떠난 상태 그대로 열립니다.
HeaderMenu, ColumnMoving, BestFitOnDblClick은 기본적으로 켜져 있으며, 지정한 PopupMenu가 우선합니다ShowColumnChooser는 원하는 버튼이나 메뉴 항목에서 선택기를 엽니다OnColumnMoved가 이동을 알려 줍니다BestFitColumn과 BestFitColumns는 머리글과 최대 1,000개의 샘플 행을 측정하므로, 100만 행도 1,000행과 비슷한 비용이 듭니다SaveLayoutToFile과 LoadLayoutFromFile은 파일을 사용합니다AutoSaveLayout은 그리드가 닫힐 때 레이아웃을 저장하고 다음 실행에서 복원하며, 열 머리글 메뉴의 Reset layout은 디자인 타임 열을 되돌립니다AutoFitColumns는 열이 그리드 너비를 가득 채우게 하고, MaxWidth는 열의 크기를 조정하거나 맞출 때 열 너비의 상한을 정합니다VCL, FireMonkey, WinForms, WPF, Avalonia 그리드에서 사용할 수 있으며, 무료 .NET Community 빌드에도 포함됩니다.
도움말 항목 읽기
데이터 가공하기
거래 화면은 Last, Change, Trend가 하나의 Price 캡션 아래에 모여 있을 때 더 읽기 좋습니다. Bands는 열 그룹 위에 필요한 만큼의 단계로 캡션을 추가하고, 각 열은 Band에 자신의 밴드를 지정합니다. CellKind는 셀을 이미지, 진행률 막대, 스파크라인으로 그리지만 셀은 원래 값을 그대로 유지하므로, 정렬, 그룹화, 내보내기는 계속 숫자를 사용합니다.
Bands.Add는 캡션과 상위 밴드를 받으며, 밴드 행은 열 머리글 위에 쌓입니다gcdProgress는 ProgressMin과 ProgressMax를 사용하고, gcdSparkline은 숫자 목록으로 꺾은선, 영역, 막대 차트를 그립니다gcdTags는 "Urgent, Pending review" 같은 텍스트로 한 셀에 여러 색상 칩을 표시하며, TagColors와 OnGetTagStyle로 고유 색상을 지정할 수 있습니다gcdImage는 CellImages의 이미지를 그리며, 그리드는 Images에 지정한 이미지 목록 어느 것으로든 이를 채웁니다TrueValue와 FalseValue는 "S"와 "N" 같은 값을 저장하는 열을 확인란으로 바꾸며, gcdLink는 OnLinkClick을 발생시키는 링크를 표시합니다HeaderLines, RowLines, WordWrap은 캡션과 셀 텍스트를 여러 줄로 표시하며, HeaderImageIndex와 HeaderButton은 열 머리글에 이미지와 버튼을 넣습니다ShowTruncatedHints는 잘린 셀이나 캡션의 전체 텍스트를 힌트로 표시하고, OnGetCellHint는 셀마다 직접 만든 힌트를 설정합니다SelectionMode의 gsmMultiRow는 Ctrl과 Shift로 임의의 행 집합을 선택하고, gsmCellRange는 셀 범위를 선택하며, Ctrl+A는 모두 선택합니다RowHeader는 레코드 표시기, 행 번호, 행마다 하나의 확인란이 있는 띠를 추가하며, SelectionColor와 SelectionTextColor는 선택 색상을 설정합니다RowDragMode는 선택한 행을 다른 컨트롤로 끌어다 놓으며, VCL에서는 Excel 같은 다른 애플리케이션으로도 끌어다 놓을 수 있습니다VCL, FireMonkey, WinForms, WPF, Avalonia 그리드에서 사용할 수 있으며, 무료 .NET Community 빌드에도 포함됩니다.
도움말 항목 읽기데이터를 변경하고, 데이터베이스와 동기화하고, 다른 곳으로 넘겨 주세요.
편집과 내보내기 Registered 에디션 전용
백오피스 사용자는 수량이나 상태를 그리드에서 바로 고치길 기대합니다. ReadOnly를 False로 설정하면 F2, Enter, 문자 입력, 더블 클릭으로 셀 위에 에디터가 열리며, 열에 PickList가 있으면 콤보 상자가 열립니다. 입력한 텍스트는 열의 데이터 형식으로 변환되고, OnValidate가 값을 바꾸거나 거부할 수 있으며, 결과는 UpdateCell로 기록되므로 정렬과 깜박임도 그대로 적용됩니다.
Editable, 그리고 OnBeforeEdit로 편집을 거부할 수 있습니다StartEdit, CommitEdit, CancelEdit로 코드에서도 같은 동작을 합니다OnEditError는 잘못된 입력에서 에디터를 열린 채로 유지하고, OnEdited는 이전 값과 새 값을 알려 줍니다.NET Community 빌드에는 없습니다.
도움말 항목 읽기
편집과 내보내기
기존 데이터베이스 코드는 그대로 동작합니다. TsgcGridSource_DataSet는 FireDAC 쿼리, TClientDataSet 또는 다른 모든 TDataSet으로 그리드를 채웁니다. Grid와 DataSet을 설정하고 Active로 만들면 행이 나타납니다. KeyField가 있으면 그리드는 다시 불러오지 않고 동기화되므로, 변경된 행이 제자리에서 갱신되며 깜박입니다. LiveUpdates를 켜면 게시된 모든 Append, Edit, Delete가 추가 코드 없이 그리드에 반영됩니다.
AutoColumns는 데이터셋 필드로 열을 만듭니다KeyField가 있으면 새 키는 추가되고 사라진 키는 삭제됩니다DisableControls로 순회하며 현재 레코드가 복원됩니다GridLoadFromJSONFile, GridSaveToCSVFile 및 sgcGrid_IO의 나머지 함수gcdImage 열에 표시되며, ImagePreview는 마우스가 셀 위에 머물면 더 큰 사본을 표시합니다ApplyFilter는 DataSet이 그리드가 표시하는 행만 유지하게 하며, OnApplySort는 그리드의 정렬을 쿼리에 쓸 필드 이름으로 전달합니다편집과 내보내기 Registered 에디션 전용
회계 담당자는 스크린샷이 아니라 Excel로 숫자를 원합니다. SaveToXLSX는 외부 라이브러리 없이 그리드를 Office Open XML 통합 문서로 파일이나 스트림에 씁니다. 시트에는 사용자가 보는 그대로, 표시 순서의 보이는 열과 너비, 숫자 서식, 고정된 머리글, 접을 수 있는 윤곽으로 표시된 그룹과 트리 수준, SUBTOTAL 수식으로 쓰인 그룹 합계가 유지됩니다.
SaveToXLSX는 파일 이름 또는 스트림과 선택적인 시트 이름을 받습니다DisplayFormat은 셀 숫자 서식이 됩니다.NET Community 빌드에는 없으며, JSON 및 CSV 내보내기는 지원합니다.
도움말 항목 읽기편집과 내보내기 Registered 에디션 전용
영업팀이 통합 문서를 보내며 Excel을 다시 거치지 않고 간단한 가정 분석을 원합니다. ExcelMode를 True로 설정하면 그리드가 가벼운 스프레드시트처럼 동작합니다. 사용자는 범위를 선택하고, 채우기 핸들을 끌어 계열을 이어 가고, =로 시작하는 수식을 입력하고, 셀 서식을 지정하고, 여러 시트에서 작업할 수 있습니다. LoadFromXLSX는 외부 라이브러리나 Excel 설치 없이 파일이나 스트림에서 통합 문서를 직접 엽니다.
OnBeforeFill로 막을 수 있습니다FormatSelection 또는 Ctrl+B, Ctrl+I, Ctrl+U, Ctrl+5로 지정하며, 서식 변경은 모두 실행 취소 한 단계입니다ShowSheetTabs를 켜면 탭 막대에서 시트를 추가, 이름 변경, 삭제, 순서 변경할 수 있고, 수식은 Orders!E1:E20 또는 'Q4 Notes'!B1 같은 참조로 다른 시트를 읽으며, 이름을 바꾸면 이 참조도 함께 바뀝니다SaveToXLSX는 모든 시트를 이름, 셀 서식, 그리고 계산된 값을 캐시한 Excel 수식으로 쓰며, 참조가 정확하게 유지되도록 행은 저장소 순서대로 내보냅니다LoadFromXLSX는 Excel 모드에서는 통합 문서의 모든 시트를, 그 밖에는 이름이나 인덱스로 고른 시트 하나를 읽고, 머리글 행에서 추론한 형식으로 열을 만들며, 문자열, 숫자, 불리언, 날짜(1904 날짜 체계 포함)를 읽습니다Formula(예: =C1*D1)는 1행 기준으로 작성하며, 읽기 전용 열의 모든 행을 메모리 데이터, 가상 모드, DataSet 소스에서 계산합니다. 가상 모드에서는 OnGetValue가 반환하는 수식 텍스트도 계산됩니다완전한 스프레드시트는 아닙니다. 차트와 셀 병합은 없고, DataSet 소스에서는 셀 수식을 쓸 수 없으며 열 수식이 그 자리를 대신합니다. VCL, FireMonkey, WinForms, WPF, Avalonia에서 사용할 수 있으며 .NET Community 빌드에는 없습니다.
도움말 항목 읽기 셀 서식 항목 읽기 시트 항목 읽기 열 수식 항목 읽기
편집과 내보내기 Registered 에디션 전용
WriteBack을 켜면 TsgcGridSource_DataSet이 그리드에서 일어난 모든 변경을 해당 행의 레코드에 기록합니다. KeyField로 레코드를 찾아 값을 포스트합니다. 포스트가 실패하면, 예를 들어 BeforePost 검사에서 실패하면 레코드는 취소되고 셀은 이전 값을 유지합니다. SyncCursor는 현재 레코드와 활성 행을 함께 유지하므로, 같은 데이터셋의 TDBNavigator와 TDBEdit 컨트롤은 그리드를 따라가고 그리드도 이들을 따라갑니다.
AllowInsert: Ins는 레코드를 추가하고 포스트하며, 데이터셋의 OnNewRecord가 기본값을 채웁니다AllowDelete: OnBeforeDelete가 동의하면 Ctrl+Del이 선택한 행과 그 레코드를 삭제합니다OnEditError는 데이터셋의 메시지를 표시하며, 붙여넣은 값과 실행 취소도 같은 쓰기 경로를 사용합니다VCL, FireMonkey, WinForms, WPF, Avalonia 그리드에서 사용할 수 있으며, .NET Community 빌드에는 없습니다. .NET에서는 소스가 DataTable에 다시 기록되고, AddLookup이 조회 열을 추가하며, SyncCursor는 Delphi 전용입니다.
편집과 내보내기 Registered 에디션 전용
각 열은 자신을 편집할 컨트롤을 직접 고릅니다. EditorKind는 날짜, 시간, 날짜와 시간 선택기, 화살표가 있는 숫자 상자, 색 선택기, sgcEditors의 토큰 편집기 중에서 고르며, 기본값은 열의 데이터 형식에서 정해집니다. Ctrl+V는 Excel에서 복사한 블록을 붙여넣습니다. 모든 값은 무엇이든 기록하기 전에 변환되고 검증되며, 붙여넣기 전체가 하나의 실행 취소 단계가 됩니다. Ctrl+Z와 Ctrl+Y는 편집과 붙여넣기를 실행 취소하고 다시 실행합니다.
OnCreateEditor는 예를 들어 TTrackBar처럼 원하는 컨트롤을 셀에 놓습니다gedMemo는 긴 텍스트를 여러 줄로 편집하고, gedLookup은 여러 열이 있는 목록에서 값을 고르며, 목록은 LookupItems 또는 조회 필드로 채웁니다TrueValue 또는 FalseValue를 다시 기록합니다PasteText와 PasteFromClipboard는 코드에서도 쓸 수 있고, OnBeforePaste는 텍스트를 수정하거나 거부할 수 있습니다OnValidate가 거부하면, 아무것도 기록되기 전에 붙여넣기가 중단됩니다UndoLimit는 최근 100단계를 유지하며, Undo, Redo, CanUndo는 코드에서도 쓸 수 있습니다VCL, FireMonkey, WinForms, WPF, Avalonia 그리드에서 사용할 수 있으며, .NET Community 빌드에는 없습니다.
도움말 항목 읽기수백만 행, 실시간 피드, 일상 언어.
규모와 연결
이미 다른 곳에 있는 로그 보관소, 센서 이력, 쿼리 결과는 메모리에 복사할 필요가 없습니다. 가상 모드에서는 그리드가 행을 저장하지 않습니다. VirtualRowCount가 행 수를 알려 주고, 행이 보이는 위치로 스크롤되면 OnGetValue가 값을 반환합니다. 보이는 행만 그려지므로 백만 행 그리드도 오십 행 그리드와 같은 비용이 듭니다. 소스가 늘어나면 개수를 변경하세요.
Virtual과 VirtualRowCount, OnGetValue가 셀 값을 제공합니다OnGetValue를 통해 값을 읽습니다TailMode와 함께 쓰는 MaxRows가 키 기반 대안입니다
규모와 연결 Registered 에디션 전용
주문 이력이나 감사 테이블은 한꺼번에 불러오기에는 너무 크지만, 사용자는 여전히 정렬하고, 필터링하고, 그룹화하기를 원합니다. 서버 모드에서는 프로바이더 컴포넌트가 한 번에 한 페이지씩 행을 읽고, 데이터 소스가 정렬, 열 필터, 필터 행, 찾기 텍스트, 바닥글 요약, 그룹화, 행 수를 평가합니다. 수백만 행의 테이블도 쉰 행의 테이블만큼 빠르게 열리며, 화면에 보이는 페이지만 읽습니다.
TsgcGridServerProvider_DataSet는 모든 요청을 SQLite, SQL Server, PostgreSQL, MySQL, Oracle, Firebird, InterBase 또는 일반 Dialect용 SQL 문 하나로 바꾸며, FireDAC, dbExpress, ADO, IBX, UniDAC, Zeos 등 모든 쿼리 컴포넌트로 실행합니다TsgcGridServerProvider_Queryable이 모든 IQueryable(예: Entity Framework Core 집합)을 읽고, TsgcGridServerProvider_AdoNet은 모든 ADO.NET 연결에서 같은 SQL을 실행합니다TsgcGridServerProvider_Callback은 REST 서비스 같은 그 밖의 모든 소스를 이벤트로 제공하며, 즉시 또는 나중에 어느 스레드에서든 응답할 수 있습니다PageSize 단위의 블록으로 불러오고, 그리기는 기다리지 않으며, 아직 불러오지 않은 행은 해당 페이지가 도착할 때까지 자리 표시자 막대로 표시합니다서버 모드에서는 트리 행과 상세 영역을 사용할 수 없으며, 필터 팝업에 행 수가 표시되지 않습니다. VCL, FireMonkey, WinForms, WPF, Avalonia에서 사용할 수 있으며 .NET Community 빌드에는 없습니다.
도움말 항목 읽기규모와 연결
모든 사용자가 필터를 만들고 싶어 하지는 않습니다. TsgcGridAI는 price greater than 100 sort by volume descending highlight change less than 0 같은 질문을 그리드의 필터, 정렬, 행 강조로 바꾸며, AI 쿼리 바는 사용자가 질문을 입력할 자리를 제공합니다. 공급자를 지정하지 않으면 규칙 기반 파서가 네트워크도 API 키도 없이 로컬에서 답합니다. 공급자를 지정하면 어떤 LLM이든 대신 답합니다. TsgcUIAIEventProvider는 각 요청을 사용자 코드에 넘기고, TsgcUIAIChatProvider는 sgcWebSockets의 TsgcAIChat 컴포넌트를 사용합니다. 전송되는 것은 필드 카탈로그, 즉 열의 이름, 캡션, 형식, 몇 개의 샘플 값뿐이며 행은 절대 전송되지 않습니다.
TsgcVCLAIQueryBar, TsgcFMXAIQueryBar, TsgcWinFormsAIQueryBar, TsgcWpfAIQueryBar, TsgcAvaloniaAIQueryBar. 최근 질문, 추천 질문, 취소, 실행 취소를 제공합니다OnFilterRow를 통하고, 강조 표시는 ApplyToRow 서식 규칙이 됩니다Undo로 한 단계 되돌립니다LastExplanation이 적용된 내용을 알려 주며, 공급자가 실패하면 규칙 기반 파서가 답합니다TsgcHTMLAIAssistant를 쓰는 TsgcGridAIQuery를 계속 제공하며, JSON 메시지를 키별로 그리드에 쓰는 TsgcGridFeedSource_WebSocket, TsgcGridFeedSource_MQTT, TsgcGridFeedSource_SSE도 제공합니다무료 Community 에디션을 포함한 모든 에디션에서 VCL, FireMonkey, WinForms, WPF, Avalonia에서 사용할 수 있습니다. sgcWebSockets 공급자와 sgcGridWS 브리지에는 sgcWebSockets와 Registered 에디션이 필요합니다.
도움말 항목 읽기미리 보기에는 프린터와 PDF가 받는 내용이 그대로 표시됩니다.
인쇄, 미리 보기, PDF
인쇄된 페이지에는 화면이 아니라 그리드의 내용이 나옵니다. 모든 행이 필터, 정렬 순서, 그룹화, 찾기 일치를 적용한 그리드 표시 그대로 인쇄되며, 스크롤로 보이는 행만 인쇄되는 것이 아닙니다. 밴드 행과 열 머리글은 모든 페이지 맨 위에 반복되고, 요약이 있는 바닥글은 모든 페이지를 마무리하며, 한 페이지에는 온전한 행만 담기므로 행이 잘리는 일이 없습니다.
Print는 인쇄 대화 상자를 표시하거나 기본 프린터로 바로 인쇄하고, ShowPrintPreview는 페이지 이동, 확대/축소, 페이지 설정, 인쇄, PDF 내보내기를 갖춘 미리 보기를 엽니다PrintSettings는 용지, 방향, 여백, 배율, 머리글과 바닥글 텍스트를 담고 있으며, 프린터, 미리 보기, PDF가 모두 이를 사용합니다ExportToPDF는 실제 검색 가능한 텍스트를 가진 벡터 페이지를 기록합니다. 기본적으로 태그가 지정된 PDF/UA이며 모든 페이지가 머리글 셀을 가진 실제 표이므로, 화면 읽기 프로그램이 표를 머리글과 함께 안내합니다TsgcUIPDFOptions의 PDFALevel은 보관용으로 PDF/A-2a 또는 PDF/A-3a를 추가하며, 단독으로도 PDF/UA와 함께도 사용할 수 있습니다인쇄와 미리 보기는 무료 Community 에디션을 포함한 모든 에디션에서 VCL, FireMonkey, WinForms, WPF, Avalonia에서 사용할 수 있습니다. FireMonkey에서는 인쇄가 Windows와 macOS에서, 미리 보기와 PDF 내보내기는 모든 플랫폼에서 동작합니다. PDF 내보내기에는 sgcUIPDF 브리지와 라이선스가 있는 sgcPDF(.NET에서는 NuGet 패키지 esegece.sgcUICore.sgcPDF)가 필요하므로 Community 에디션에는 포함되지 않습니다.
UI Automation을 통한 화면 읽기 프로그램, 키보드, 고대비 지원, 별도 설정이 필요 없습니다.
접근성
sgcGrid는 화면 읽기 프로그램(Narrator, NVDA 등)이 사용하는 API인 Microsoft UI Automation에 열 머리글, 행, 셀이 있는 표로 내용을 노출합니다. 보이는 행만 생성되고 행과 열 개수는 항상 전체 개수이므로, 행이 백만 개인 그리드도 추가 비용이 들지 않습니다.
접근성은 무료 Community 에디션을 포함한 모든 에디션에서 기본으로 켜져 있으며, Delphi 7부터 Delphi 13까지 모든 Delphi 및 C++Builder 버전의 VCL, Windows의 FireMonkey, 그리고 WinForms, WPF, Avalonia에서 지원됩니다. Delphi와 C++Builder에서는 AccessibleName과 AccessibleDescription이 UI Automation에 노출되는 이름과 설명을 설정하고, .NET에서는 각 프레임워크의 표준 접근성 이름과 도움말 텍스트가 같은 역할을 합니다. 접근성 적합성 보고서를 참조하세요. Avalonia에는 표 패턴이 없으므로 각 셀이 이름과 도움말 텍스트에 자신의 열과 위치를 담고 있습니다. 열 너비는 마우스로만 조절할 수 있습니다.
sgcUI 제품군 데모 속의 sgcGrid: 내장 시뮬레이션 데이터로 오프라인에서 실행되는 완전한 애플리케이션입니다.
데스크와 전략별로 묶은 포지션, P&L 셀 색상 표시, 체결 내역은 한 번의 클릭으로.
Altamira Markets →
요약과 연결된 연락처 카드가 있는 지역별 고객 그룹.
Altamira ERP →
프로그램별로 묶고 대응 행이 있는 리스크 대장.
Altamira PMO →
트럭별 ETA, 여유 시간, 상태가 있는 차량 그리드와 전국 지도.
Altamira Fleet →sgcGrid QA 성능 게이트의 최근 측정 평균입니다. 열 12개, 행 100,000개, 보이는 행 45개의 1920 x 1080 프레임을 래스터 캔버스에서 60번 렌더링했습니다. 게이트는 프레임당 Win64에서 16 ms, Win32에서 25 ms를 넘으면 실패합니다.
| 측정 항목 | 결과 | 조건 |
|---|---|---|
| 일반 프레임 | 3.0 ms | Win32 |
| 일반 프레임 | 4.6 ms | Win64 |
| 일반 프레임 | 3.7 ms | Linux64 |
| 깜박임 및 서식 규칙 3개 | 3.2 ms | Win32 |
| 깜박임 및 서식 규칙 3개 | 6.8 ms | Win64 |
| LiveTicker 데모, 작업자 스레드 쓰기 | 초당 약 1,000건 업데이트 | 정렬된 깜박이는 그리드, 60 fps |
출처: 이 수치를 설명하는 도움말 항목.
호가판은 수백 개의 가격이 매초 바뀌는 중에도 읽을 수 있어야 합니다. 피드 스레드는 UpdateRow로 쓰며 UI를 기다리지 않고, 변경 시 깜박임은 모든 움직임의 방향을 보여 주며, 테일 모드는 체결 로그를 최신 체결에 맞춰 둡니다. sgcGridWS 브리지는 WebSocket, MQTT, SSE에서 호가를 읽을 수 있습니다.
주문 입력, 재고 목록, 송장 화면은 데이터베이스를 기반으로 합니다. 기존 TDataSet을 바인딩하고, 사용자가 고객이나 월별로 그룹화해 모든 그룹 행에서 합계를 보게 하고, 유효성 검사와 함께 값을 그 자리에서 수정하게 하며, 회계 담당자가 그룹과 SUBTOTAL 수식이 그대로 유지된 상태로 여는 통합 문서를 내보내세요.
운영 화면은 끝나지 않는 이벤트 스트림을 보여 줍니다. MaxRows는 로그 크기를 제한하고, 서식 규칙은 오류를 빨간색으로 표시하며, 가상 모드는 수백만 줄의 보관 데이터를 필요할 때 탐색합니다. Linux64 서버에서는 렌더러가 같은 그리드를 PNG 또는 SVG 파일로 써서 알림 이메일에 사용할 수 있습니다.
Delphi, C++ Builder, C#에서 같은 API를 사용합니다. 열을 추가하고, 키로 행을 추가하고, 나중에 어떤 스레드에서든 갱신하세요.
코드로 만든 VCL 그리드: 타입이 지정된 열, 키로 추가한 행, 어떤 스레드에서든 필드 이름으로 하는 업데이트.
uses
Forms, Classes, Controls,
sgcGrid_Columns, sgcGrid_Data, sgcGrid_VCL;
procedure CreateGrid(aForm: TForm);
var
oGrid: TsgcVCLGrid;
begin
oGrid := TsgcVCLGrid.Create(aForm);
oGrid.Parent := aForm;
oGrid.Align := alClient;
// the columns: FieldName, Caption and DataType
oGrid.Columns.Add('Symbol', 'Symbol');
oGrid.Columns.Add('Price', 'Price', gdtFloat).DisplayFormat := '0.00';
oGrid.Columns.Add('Volume', 'Volume', gdtInteger);
// one row per key, the values in column order
oGrid.Data.AppendRow('MSFT', ['MSFT', 412.5, 1200]);
oGrid.Data.AppendRow('AAPL', ['AAPL', 228.1, 3400]);
// later, from any thread: update the row of a key by field name
oGrid.Data.UpdateRow('MSFT', ['Price', 'Volume'], [413.1, 1350]);
end;생성된 sgcGrid 헤더를 사용하는 C++ Builder의 같은 그리드.
#include "sgcGrid_Columns.hpp"
#include "sgcGrid_Data.hpp"
#include "sgcGrid_VCL.hpp"
void __fastcall CreateGrid(TForm *Form)
{
TsgcVCLGrid *Grid = new TsgcVCLGrid(Form);
Grid->Parent = Form;
Grid->Align = alClient;
// the columns: FieldName, Caption and DataType
Grid->Columns->Add("Symbol", "Symbol", gdtText);
Grid->Columns->Add("Price", "Price", gdtFloat)->DisplayFormat = "0.00";
Grid->Columns->Add("Volume", "Volume", gdtInteger);
// one row per key, the values in column order
Grid->Data->AppendRow("MSFT", OPENARRAY(Variant,
(Variant("MSFT"), Variant(412.5), Variant(1200))));
Grid->Data->AppendRow("AAPL", OPENARRAY(Variant,
(Variant("AAPL"), Variant(228.1), Variant(3400))));
// later, from any thread: update the row of a key by field name
Grid->Data->UpdateRow("MSFT",
OPENARRAY(String, (String("Price"), String("Volume"))),
OPENARRAY(Variant, (Variant(413.1), Variant(1350))));
}깜박이는 셀, 마이너스 변경 규칙, 다크 테마가 있는 WinForms 그리드.
using System.Windows.Forms;
using esegece.sgcGrid;
using esegece.sgcUICore;
internal class MainForm : Form
{
private readonly TsgcWinFormsGrid Grid = new TsgcWinFormsGrid();
public MainForm()
{
Grid.Dock = DockStyle.Fill;
// the columns: field name, caption and data type
Grid.Columns.Add("symbol", "Symbol");
Grid.Columns.Add("price", "Price", TsgcGridDataType.gdtFloat).DisplayFormat = "#,##0.00";
Grid.Columns.Add("change", "Change", TsgcGridDataType.gdtFloat).DisplayFormat = "+0.00;-0.00;0.00";
Grid.Columns.Add("volume", "Volume", TsgcGridDataType.gdtInteger).DisplayFormat = "#,##0";
// changed cells flash and fade, negative rows are tinted red
Grid.FlashChanges = true;
Grid.FormatRules.Add("change", TsgcGridFormatOperator.gfoLess, "0", 0x30E53935).ApplyToRow = true;
Grid.Theme = TsgcUITheme.utDark;
// one row per key, the values follow the column order
Grid.Data.AppendRow("MSFT", "MSFT", 412.5, 0.0, 1200);
Grid.Data.AppendRow("AAPL", "AAPL", 228.1, 0.0, 3400);
Controls.Add(Grid);
}
// call it from any thread: TsgcGridData is thread safe
public void OnQuote(string aSymbol, double aPrice, double aChange, int aVolume)
{
Grid.Data.UpdateRow(aSymbol, new[] { "price", "change", "volume" },
new object[] { aPrice, aChange, aVolume });
}
}dotnet add package esegece.sgcGrid.WinFormsDelphi용 데모 19개(그중 5개는 FireMonkey), C++ Builder용 13개, WinForms, WPF, Avalonia용 .NET 데모 24개가 있습니다.
작업자 스레드에서 UpdateRow로 초당 약 1,000건의 가격 업데이트를 보내며, 정렬된 보기, 깜박이는 셀, 마이너스 변경 서식 규칙을 포함합니다. VCL, FireMonkey, C++ Builder, WinForms, WPF, Avalonia를 지원합니다.
KeyField, AutoColumns, LiveUpdates가 있는 레코드 200개의 TClientDataSet에 바인딩된 TsgcGridSource_DataSet과 JSON 및 CSV 내보내기와 가져오기를 보여 줍니다.
탭 막대에 시트 세 개가 있는 Excel 모드입니다. Total 열에 열 수식 =C1*D1이 있는 Orders, =SUM(Orders!E1:E20)과 시트 간 수식이 있는 Summary, 그리고 Notes입니다. 도구 모음에서 선택 영역의 서식을 지정하고, 시트 명령을 실행하며, 수식, 서식, 시트 이름이 유지되는 XLSX 파일을 저장하고 엽니다. VCL, FireMonkey(SpreadsheetFMX), C++ Builder, WinForms, WPF, Avalonia에서 사용할 수 있습니다.
메모리 내 FireDAC SQLite 데이터베이스에 생성한 주문 200,000건을 TsgcGridServerProvider_DataSet이 페이징합니다. 표와 카드를 전환하고, 정렬, 필터, 찾기, 바닥글 합계를 사용하고, 국가와 고객별로 그룹화하면 행 수와 합계를 SQL이 계산하며, 편집 내용은 데이터베이스에 다시 씁니다. VCL과 C++ Builder용이며, ServerModeAndCardsFMX는 생성한 행 100,000개를 TsgcGridServerProvider_Callback으로 페이징하고, WinForms, WPF, Avalonia 데모에는 ADO.NET, IQueryable, 콜백 페이지가 있습니다.
지역과 카테고리로 그룹화한 주문 100,000건과 그룹 패널, Count, Sum, Average 요약, 바닥글, 고정 열 2개를 보여 줍니다. .NET에서는 Grouping이라고 부릅니다.
10만 행의 판매 데이터에 깔대기 팝업, 필터 행, 찾기 패널을 적용하고, 열 선택기, 최적 너비, 파일에 저장했다가 다시 불러오는 레이아웃도 보여 줍니다. VCL, FireMonkey, C++ Builder, WinForms, WPF, Avalonia용입니다.
종목 2,000개를 Instrument, Live data, Price, Position 밴드 아래에 표시하며, 스파크라인, 진행률, 이미지 셀, 여러 행 선택, Copy 버튼을 갖추고 있습니다. VCL, C++ Builder, WinForms용입니다.
선택 목록 열, Space로 전환하는 불리언 열, 음수 수량을 거부하는 OnValidate, OnEditError, OnEdited 로그를 보여 줍니다. 여기에 sgcEditors의 날짜, 시간, 숫자, 색, 토큰 편집기, OnCreateEditor를 통한 TTrackBar, 붙여넣기, 실행 취소와 다시 실행이 더해집니다.
제품과 카테고리를 TClientDataSet 두 개에 담고, TDBNavigator와 TDBEdit 두 개가 그리드와 같은 레코드를 공유합니다. WriteBack, SyncCursor, 조회 열, 삽입, 삭제, 실행 취소를 보여 줍니다. VCL, C++ Builder, WinForms(AddLookup이 있는 DataTable)용입니다.
조직도 트리와 TsgcGridDataStore로 채운 주문 상세 영역이 있는 고객을 보여 줍니다.
SaveToXLSX로 저장하고 스프레드시트 애플리케이션에서 연 그룹 그리드와 트리 그리드로, 윤곽과 요약이 유지됩니다.
대시보드의 그리드 타일과 차트 타일: TsgcChartDataSource_Table이 그리드 행을 그립니다. sgcCharts와 sgcDashboard가 필요합니다.
TsgcGridAI와 AI 쿼리 바가 일상 언어 질문으로 종목 200개를 필터링, 정렬, 강조하며, 네트워크도 API 키도 필요 없고 TsgcGridAIQuery 브리지도 함께 보여 줍니다. sgcWebSockets가 필요합니다.
프로세스 내 WebSocket 서버가 50개 심볼의 JSON 배치를 브로드캐스트하고, TsgcGridFeedSource_WebSocket이 키별로 그리드에 씁니다. Delphi와 .NET용입니다.
Delphi(VCL)용 QuickStart 데모 다섯 개가 Demos\Grid\Delphi\00.QuickStart에 포함되어 있습니다. PDF 가이드가 단계별로 안내하는 내용은 다음과 같습니다. 첫 번째 그리드, 형식 있는 열, 그 자리에서 편집, 데이터셋 연결, 필터, 그룹화, 합계가 있는 주문 애플리케이션.
무료 .NET Community 에디션은 NuGet의 esegece.sgcGrid.Community입니다. 프로젝트는 Community 또는 등록 패키지 중 하나만 참조하며, 둘 다 참조하지는 않습니다. 무료 Delphi Community 에디션은 다운로드 페이지에 있습니다.
| 기능 | Community (무료) | Registered 에디션 |
|---|---|---|
| Live updates from any thread, flash on change, tail mode | ✓ | ✓ |
| 글꼴 스타일과 아이콘 세트를 지원하는 서식 규칙, 테마 | ✓ | ✓ |
| Sorting, filtering and selection | ✓ | ✓ |
| Grouping, group panel and summaries | ✓ | ✓ |
| Frozen columns and column resizing | ✓ | ✓ |
| Virtual mode | ✓ | ✓ |
| DataTable 바인딩, DataTable에 적용되는 그리드 필터, JSON 및 CSV | ✓ | ✓ |
| Headless PNG and SVG | ✓ | ✓ |
| 날짜 기간을 지원하는 열 필터, 필터 행, 찾기 패널 | ✓ | ✓ |
| 열 선택기, 열 이동, 최적 너비, 자동 레이아웃, 너비를 가득 채우는 열 | ✓ | ✓ |
| 밴드, 이미지, 진행률, 스파크라인, 태그 셀, 다중 선택 | ✓ | ✓ |
| 확인 및 링크 셀, BLOB 필드의 이미지, 여러 줄 머리글과 행, 힌트 | ✓ | ✓ |
| 확인란이 있는 행 머리글, 머리글의 이미지와 버튼, 선택 색상, 행 끌어다 놓기 | ✓ | ✓ |
| 그리드에 질문하기: TsgcGridAI, AI 쿼리 바, 모든 LLM 공급자 | ✓ | ✓ |
| 인플레이스 편집, 확인란 전환, 메모 및 조회 편집기 | − | ✓ |
| 양방향 DataTable 편집, 붙여넣기, 실행 취소와 다시 실행, sgcEditors 셀 편집기 | − | ✓ |
| Tree rows and master detail | − | ✓ |
| Excel export | − | ✓ |
| Excel 모드, 셀 서식, 시트, 열 수식 | − | ✓ |
| 서버 모드: 서버에서 데이터베이스 페이징, 정렬, 필터링, 요약, 그룹화 | − | ✓ |
| 카드 보기 | − | ✓ |
| 실시간 피드, TsgcGridAIQuery, sgcWebSockets AI 공급자(sgcGridWS 및 sgcUICoreWS 브리지) | − | ✓ |
| 컴포넌트 | 대상 |
|---|---|
| TsgcVCLGrid | Delphi 및 C++ Builder, VCL (sgcGrid_VCL) |
| TsgcFMXGrid | XE6부터 Delphi FireMonkey, Windows, macOS, iOS, Android (sgcGrid_FMX) |
| TsgcGridData, TsgcGridColumns, TsgcGridFormatRules, TsgcGridLineView, TsgcGridRenderer | 프레임워크 중립 행 저장소, 열, 서식 규칙, 렌더러이며 Linux64에서도 동작 |
| TsgcGridSource_DataSet, TsgcGridDataStore | TDataSet 바인딩과 마스터 상세 영역의 행 저장소 |
| TsgcGridAI | 프레임워크 중립 일상 언어 질의 엔진이며 모든 에디션과 Linux64에서도 사용 가능 (sgcGrid_AI) |
| TsgcVCLAIQueryBar, TsgcFMXAIQueryBar, TsgcUIAIEventProvider | sgcUICore의 AI 쿼리 바와 AI 공급자, 모든 에디션 |
| TsgcUIAIChatProvider | sgcUICoreWS 브리지: sgcWebSockets의 TsgcAIChat을 AI 공급자로 사용 (Registered 에디션) |
| TsgcGridFeedSource_WebSocket, TsgcGridFeedSource_MQTT, TsgcGridFeedSource_SSE, TsgcGridAIQuery | sgcWebSockets와 함께 쓰는 sgcGridWS 브리지 (등록 에디션) |
| TsgcWinFormsGrid, TsgcWpfGrid, TsgcAvaloniaGrid | .NET, WinForms, WPF, Avalonia |
| TsgcGridAI, TsgcWinFormsAIQueryBar, TsgcWpfAIQueryBar, TsgcAvaloniaAIQueryBar | .NET, WinForms, WPF, Avalonia용 일상 언어 질의와 AI 쿼리 바 |
| 대상 | 컴포넌트 | 플랫폼 |
|---|---|---|
| Delphi 7부터 13, VCL | TsgcVCLGrid | Win32, XE2부터 Win64 |
| Delphi XE6부터 13, FireMonkey | TsgcFMXGrid | Windows, macOS, iOS, Android |
| C++ Builder 2007부터 13 | TsgcVCLGrid, TsgcFMXGrid | 생성된 .hpp 헤더와 정적 라이브러리 |
| Delphi 10.2부터 13, 프레임워크 중립 | 모델, 서식, 렌더러, JSON 및 CSV | Linux64, 예를 들어 서버에서 그리드 이미지를 렌더링 |
| .NET Framework 4.7.2, .NET 8, 9, 10 | TsgcWinFormsGrid, WPF 및 Avalonia 그리드 | WinForms, WPF, Avalonia, 헤드리스 PNG 및 SVG |
네. 그리드 데이터의 AppendRow, UpdateRow, UpdateCell, DeleteRow는 스레드 안전하므로 작업자 스레드가 키로 행을 직접 쓸 수 있습니다. 그리드는 메인 스레드에서 초당 최대 MaxFPS번 다시 그립니다. 실시간 업데이트를 확인하세요.
보이는 행만 그려지므로 프레임 비용은 행 수가 아니라 창 크기에 따라 달라집니다. QA 게이트는 행 100,000개 그리드의 1080p 프레임을 Win32에서 3.0 ms, Win64에서 4.6 ms로 측정합니다. 다른 곳에 있는 데이터에는 가상 모드가 행을 저장하지 않고 스크롤되어 보이는 값만 요청합니다. 성능을 확인하세요.
네, 서버 모드에서 가능합니다. 프로바이더가 한 번에 한 페이지씩 행을 읽고, 데이터베이스가 정렬, 열 필터, 필터 행, 찾기 텍스트, 바닥글 요약, 그룹화, 행 수를 평가합니다. Delphi와 C++ Builder에서는 TsgcGridServerProvider_DataSet이 SQLite, SQL Server, PostgreSQL, MySQL, Oracle, Firebird, InterBase 또는 일반 Dialect용 SQL을 만들어 모든 쿼리 컴포넌트로 실행합니다. .NET에서는 프로바이더가 IQueryable(예: Entity Framework Core 집합)이나 ADO.NET 연결을 읽고, 콜백 프로바이더가 그 밖의 모든 소스를 제공합니다. 카드 보기도 같은 방식으로 페이징합니다. 서버 모드는 Registered 에디션에서 제공됩니다. 서버 모드를 참고하세요.
네. TsgcGridSource_DataSet은 모든 TDataSet으로 그리드를 채우고, AutoColumns로 열을 만들며, LiveUpdates를 사용하면 데이터셋의 모든 Append, Edit, Delete를 따라갑니다. KeyField가 있으면 변경된 행이 다시 불러오지 않고 제자리에서 갱신됩니다. .NET에서는 같은 소스가 DataTable을 읽습니다. DataSet 바인딩을 확인하세요.
네. TsgcVCLGrid는 일반 VCL 컨트롤이므로 기존 TStringGrid나 TDBGrid 옆의 폼에 놓을 수 있습니다. TDBGrid 화면은 데이터셋을 유지하면서 TsgcGridSource_DataSet을 추가하고, TStringGrid 화면은 AppendRow와 UpdateRow로 키별로 행을 씁니다. 폼 전체를 자동으로 변환하지는 않지만, 디자인 타임에 그리드 컨텍스트 메뉴의 Import columns from DB grid 명령이 기존 TDBGrid의 열, DataSet 연결, 위치, 이벤트를 복사합니다.
인플레이스 편집, 확인란 전환, 메모 및 조회 편집기, 양방향 DataTable 편집, 붙여넣기, 실행 취소와 다시 실행, sgcEditors 셀 편집기, 트리 행, 마스터 상세 행, Excel 내보내기, 셀 서식, 시트, 열 수식을 갖춘 Excel 모드, 서버 모드, 카드 보기, sgcGridWS 브리지, 알람 확인 로그가 없습니다. 정렬, 필터링, 필터 행과 찾기 패널, 그룹화, 요약, 고정 열, 열 선택기, 레이아웃과 자동 레이아웃, 너비를 가득 채우는 열, 밴드, 이미지, 진행률, 스파크라인, 태그, 링크, 확인 셀, BLOB 필드의 이미지, 여러 줄 머리글과 행, 힌트, 행 머리글 띠, 머리글의 이미지와 버튼, 행 끌어다 놓기, 다중 선택, 아이콘 세트를 갖춘 서식 규칙, 날짜 기간 필터, 가상 모드, JSON 및 CSV, 헤드리스 출력, ISA-18.2 알람 목록, TsgcGridAI를 사용한 그리드에 질문하기는 모든 에디션에 있습니다. 에디션을 확인하세요.
네. GroupIndent와 GroupPanelHeight 같은 크기는 장치 독립 픽셀이며, VCL 그리드는 이를 모니터의 DPI에 맞게 조정하고 Delphi 10.3부터는 모니터별로 조정합니다. Theme는 utLight와 utDark를 전환하고, AccentColor는 선택과 깜박임의 강조 색을 설정합니다.
마이그레이션 키트는 사용 중인 모든 TDBGrid 및 DevExpress cxGrid 멤버를 sgcGrid의 대응 항목에 매핑하며, 컴파일된 데모의 코드, 번호가 붙은 마이그레이션 단계, 알려진 차이점이 포함됩니다.
TDBGrid 및 cxGrid에서 마이그레이션 →