Delphi, C++ Builder & .NET sgcUI の一部

sgcGrid、Delphi、C++ Builder & .NET 向けリアルタイムデータグリッド

絶え間なく変わるデータのために作られたグリッドです。任意のスレッドからキー指定で行を書き込み、変更されたセルが緑や赤に点滅するのを確認し、同じ行をそのままグループ化、フィルター、編集、エクスポートできます。10 万行のグリッドの 1080p フレームは、Win32 で 3.0 ms です。

VCL, FireMonkey, WinForms, WPF, Avalonia1080p フレームあたり 3.0 ms(Win32)無料の .NET Community ビルドsgcUI Standard に含まれます
10 万件の注文を地域、続いてカテゴリでグループ化した sgcGrid。グループパネルのチップとフッターの合計を表示しています

リアルタイムグリッドに必要なすべて

6 つのグループに分けた 23 の機能を、それぞれのヘルプトピックにリンクしています。

リアルタイムデータ

価格、テレメトリ、キュー、ログなど、止まらないフィードに対応します。

リアルタイムデータ

任意のスレッドから、1 秒間に数千行を更新

マーケットフィード、センサーバス、ジョブキューから、グリッドに直接書き込めます。すべての行にはキーがあり、ワーカースレッドは Synchronize の呼び出しやご自身のロックコードなしに、キーを指定してフィールド名で行を更新できます。グリッドは書き込み側のスレッドでは「更新あり」の印を付けるだけで、メインスレッドで 1 秒あたり最大 MaxFPS 回だけ再描画します。

  • UpdateRow はキーに対して指定したフィールドを設定し、キーが新しければ行を挿入します。UpdateCell は 1 つのフィールドを変更します
  • AppendRow と DeleteRow は、任意のスレッドから、キーを指定して行を追加、削除します
  • BeginUpdate と EndUpdate は、一連の更新を 1 回の通知にまとめます
  • 並べ替えを行うたびに、選択行はキーで再び見つかるため、位置が飛ぶことはありません
ヘルプのトピックを読む
すべての変化をひと目で把握

リアルタイムデータ

すべての変化をひと目で把握

トレーダーやオペレーターは、すべての数字を読まなくても何が動いたかを知る必要があります。FlashChanges が有効(既定)の場合、値が上がったセルは緑、下がったセルは赤に色づき、FlashDuration ミリ秒(既定は 800)かけてフェードアウトします。ログや増え続けるフィードでは、テールモードが最新の行を表示し続け、ユーザーが読むために上へスクロールするとすぐに追従を止めます。

  • FlashUpColor、FlashDownColor、FlashChangedColor。色に 0 を指定するとテーマの既定色が使われます
  • FlashMode は、背景(fmBackground)またはテキスト(fmText)に色を付けます
  • TailMode は最新の行に追従し、MaxRows は終わりのないログの古い行から順に破棄します
  • 選択の表示は点滅の上に、点滅は書式ルールの上に描画されます
ヘルプのトピックを読む
注意が必要な行に色を付ける

リアルタイムデータ

注意が必要な行に色を付ける

期限切れの請求書、マイナスの残高、失敗したジョブは、誰かが尋ねる前に目立つべきです。書式ルールは、列のデータ型に従って、列と値を比較します。数値は数値として、日付は日付として、テキストは大文字小文字を区別せずに比較します。一致したルールは、セルまたは行全体の背景色、文字色、太字を設定し、リアルタイム更新で値が変わっても動作し続けます。

  • TsgcGridFormatRules はルールをコレクションの順に評価し、後で一致したものが先のものを上書きします
  • gfoLess、gfoBetween、gfoContains、gfoIsEmpty などの演算子があります
  • ApplyToRow は行のすべてのセルにスタイルを適用し、StopOnMatch はそのセルの評価を終了します
  • 半透明の色は背景の上にセルをうっすらと色づけし、最終的な決定権は OnGetCellStyle にあります
  • ルールでは太字に加えて斜体、下線、取り消し線を設定でき、OnGetCellFont は任意のセルのフォントスタイルとサイズを設定します
  • AddIconSet は 2 つのしきい値に応じて、矢印、円、旗、チェックマークを列に表示し、ルールでは独自のアイコンや画像も表示できます
ヘルプのトピックを読む

データを整える

大量の行を、並べ替え、フィルター、グループ化、入れ子にできます。

リアルタイムデータ

HMI 画面向けの ISA-18.2 アラームリスト

オペレーター画面には、すべてのアラームを一覧し、確認応答を待っているものを示し、オペレーターが操作できる場所が必要です。アラームモデルは、ISA-18.2 の状態と優先度 1 から 4 でアラームを保持し、アラームリンクはそれをグリッドに、タグごとに 1 行で、優先度の色と、未確認のアラームの点滅行で書き込みます。アプリケーションは自身の限界値からアラームを発生させ、解除し、オペレーターはコンテキストメニューからアラームを確認応答し、シェルブし、シェルブ解除します。

  • TsgcGridAlarmModel:RaiseAlarm、ClearAlarm、Acknowledge、AcknowledgeAll、Shelve、Unshelve
  • 6 つの状態:未確認のアクティブ、確認済みのアクティブ、未確認の正常復帰、正常、シェルブ、抑制
  • FilterPriorities、FilterStates、FilterText、そして JSON または CSV へのエクスポート
  • TsgcGridAlarmLink と TsgcVCLGridAlarmMenu。FireMonkey 向けにもあり、.NET では WinForms、WPF、Avalonia 向けにもあります

モデル、リンク、メニューは、Community 版を含むすべてのエディションにあります。Log と OnLog による確認応答ログは登録版です。アラームリストは sgcUI HMI パックの一部です。

ヘルプのトピックを読む
10 万行を 1 回の呼び出しでグループ化して集計

データを整える

10 万行を 1 回の呼び出しでグループ化して集計

地域別の売上、月別の注文、ステータス別のチケットなど、ユーザーが求めるのは生の行ではなく合計です。GroupBy は 1 つ以上の列でグリッドをグループ化し、すべてのグループ行にメンバー、行数、行の集計が表示されます。ユーザーはヘッダーをグループパネルにドラッグして、自分でグループを組み替えられます。グループ化はビューの状態にすぎないため、グリッドにバインドされたチャートは、平らに並べ替えられた行をそのまま参照します。

  • コードから GroupBy と ClearGrouping を、または列ごとの GroupIndex を使えます
  • ShowGroupPanel でドラッグ&ドロップ対応のチップを追加できます。チップをクリックするとグループの順序が入れ替わります
  • SummaryType に gsuSum、gsuCount、gsuAverage、gsuMin、gsuMax を指定でき、SummaryFormat で書式を設定します
  • すべてのグループ行に GroupSummaries、総計には ShowFooter を使えます
  • DisplayFormat を yyyy-mm にすると、日付が月ごとにグループ化されます
ヘルプのトピックを読む
大量のデータを並べ替え、フィルターし、検索

データを整える

大量のデータを並べ替え、フィルターし、検索

数千件の中から 1 人の顧客を見つけるのは、数回のキー入力で済むべきです。FilterText は、表示中のいずれかの列で、書式設定後のテキストに入力した語句を含む行を残し、OnFilterRow ハンドラーで独自のルールを上乗せできます。ヘッダーをクリックすると並べ替わり、Ctrl を押しながらクリックすると複数列の並べ替えに列が追加され、並べ替えは安定しています。並べ替えもフィルターもされていない更新中の列で、再ソートが発生することは一切ありません。

  • 列ごとの SortOrder と SortIndex があり、変更のたびに OnSortChange が発生します
  • FilterText は大文字小文字を区別せず、ユーザーに見えているとおりのテキストを対象にします
  • カスタムロジックには OnFilterRow、そのロジックが変わったときは InvalidateView を使います
  • SelectionMode で行またはセルを選択でき、Ctrl+C でタブ区切りのテキストとしてコピーできます
  • Null、空、変換できない値は、常に先頭に並びます
ヘルプのトピックを読む
ツリー行と詳細バンドで階層を表示

データを整える 登録版のみ

ツリー行と詳細バンドで階層を表示

組織図や部品表はツリーで読むのが最適で、顧客の注文は顧客のすぐ下に表示するのが最適です。ツリー行は、キー列と親列から、深さ優先で行を配置します。詳細バンドは、任意の親行の下に関連する行の小さなグリッドを開き、独自のヘッダー、スクロール、並べ替えを持ち、TsgcGridDataStore、別のグリッド、またはイベントからデータを取得します。

  • Tree.KeyField と Tree.ParentField でツリーが有効になり、ExpandNode と CollapseNode をコードから使えます
  • 展開状態はキーごとに保持されるため、並べ替え、フィルター、リアルタイム更新をしても維持されます
  • Detail.MasterKeyField と Detail.DetailKeyField でバンドをソースに結び付け、OnGetDetailData が必要に応じてデータを供給します
  • バンドはフラット、グループ化、ツリーのいずれのモードでも動作し、詳細セルの変更もマスターグリッドと同様に点滅します

グループ化は利用できますが、ツリー行と詳細バンドは .NET Community ビルドには含まれません。

ヘルプのトピックを読む
同じ行をカードで表示

データを整える 登録版のみ

同じ行をカードで表示

連絡先リスト、製品カタログ、チケットのキューは、テーブルよりカードのほうが読みやすいことがよくあります。ViewStyle を gvsCard にすると、グリッドは各行を 1 枚のカードとして描画します。カードは、省略可能なキャプションバー、省略可能な画像、そして表示されている列ごとにキャプションと値を表示する 1 行で構成されます。カードはテーブルと同じ行を表示するため、ソート、フィルター、検索パネル、選択、編集、サーバーモードは、どちらのビューでも動作し、1 つのプロパティで実行時に切り替えられます。

  • CardOptions で CaptionField、フィールドの上または横に置く ImageField、CardWidth、1 バンドあたりのカード数を設定します
  • すべてのカードが同じサイズなので、カードビューでも、数百万行のサーバーモードのグリッドをテーブルと同じようにページ単位で読み込み、まだ届いていない行にはプレースホルダーのカードを表示します
  • 値はセルと同じように描画されます。書式ルール、プログレス、タグ、リンク、スパークラインのセル、検索の一致箇所、変更時の点滅にも対応します
  • 矢印キーでカード間を移動し、Tab でフィールド間を移動し、F2 でフィールドを編集し、フィールドのキャプションを右クリックすると、ヘッダーなしでソートとフィルターができる列メニューが開きます
  • 右から左への表示、印刷、スクリーンリーダーはカードビューでも動作し、保存したレイアウトにはビューも含まれます

カードビューはグループ化せず、列ヘッダー、フィルター行、フッターも描画しません。VCL、FireMonkey、WinForms、WPF、Avalonia に対応し、.NET Community ビルドには含まれません。

ヘルプのトピックを読む
主要な列を表示したまま、残りをスクロール

データを整える

主要な列を表示したまま、残りをスクロール

横に広いグリッドは、銘柄や顧客名がスクロールで消えると、手がかりを失います。FrozenColumns は、先頭の表示列をその位置に保ち、残りの列を横方向にスクロールさせます。ヘッダー、フッター、グループ集計も同じ区切りに従います。ユーザーはヘッダーの端をドラッグして列幅を変更でき、ヘッドレスレンダラーも同じ設定を使うため、出力した画像は画面と一致します。左側のグループの矢印もスクロールしません。

  • FrozenColumns は表示列を数え、固定の境界は 1 ピクセルの線で示されます
  • キーボードで移動すると、スクロールされた列が固定境界の右側に表示されます
  • レンダラーの FrozenWidth は、スクロールしない部分の幅を返します
  • MinWidth がサイズ変更を制限し、OnColumnResized が新しい幅を通知します
  • 無料の .NET Community ビルドを含む、すべてのエディションに含まれます
  • アラビア語とヘブライ語の右から左対応:最初の列は右に置かれ、固定列は右端に留まり、右から左のグリッドの XLSX エクスポートは右から左のシートを書き出します
ヘルプのトピックを読む
FilterAndFind デモ:ファネルボタン、(2 values) と > 500 を入力したフィルター行、Nakatomi を強調表示する検索パネル

データを整える

表計算ソフトのようにフィルターし、どんな値でも見つける

ユーザーは Excel で見慣れたファネルを期待します。ShowFilterButtons は各列ヘッダーにファネルを置きます。クリックすると、その列の重複しない値と行数、検索ボックス、And または Or で結んだ型付きの条件を最大 2 つ備えたポップアップが開きます。ShowFilterRow はヘッダーの下に、入力しながら列をフィルターする行を追加し、Ctrl+F で開く検索パネルは、すべてのセルでテキストを強調表示して、一致箇所の間を移動します。

  • 列ごとのフィルターは 1 つだけで、ポップアップ、フィルター行、コードの Column.Filter のどれからでも変更できるため、3 つは常に一致します
  • フィルター済みの 2 つの列の値リストは互いに絞り込み合い、塗りつぶしのファネルがフィルター中の列を示します
  • 列ごとの FilterRowOperator:等しい、より大きい、含む、で始まる、空である、など
  • FindText、FindNext、FindPrevious はコードからも使え、FindOnlyMatches は一致しない行を隠します
  • 列フィルターは FilterText と OnFilterRow とともに適用され、OnFilterChange が変更のたびに通知します
  • 日付の列は期間でフィルターできます。今日、昨日、今週または先週、今月または先月、今年または昨年、過去 N 日があり、週の開始日は 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 ビルドにも含まれます。

ヘルプのトピックを読む
BandsAndCells デモ:Instrument、Live data、Price、Position のバンド、エリア型のスパークライン、進捗バー、状態アイコン、選択された 3 行

データを整える

バンドの見出し、豊かなセル、複数行の選択

取引画面は、Last、Change、Trend が 1 つの Price 見出しの下にまとまっていると読みやすくなります。Bands は列のグループの上に、必要な段数だけ見出しを追加し、各列は Band に自分のバンドを指定します。CellKind はセルを画像、進捗バー、スパークラインとして描画しますが、セルは元の値を保持するので、並べ替え、グループ化、エクスポートでは引き続き数値が使われます。

  • Bands.Add は見出しと親バンドを受け取り、バンドの行は列ヘッダーの上に積み重なります
  • gcdProgress は ProgressMin と ProgressMax を使い、gcdSparkline は数値のリストから折れ線、エリア、棒のグラフを描きます
  • gcdTags は、"Urgent, Pending review" のようなテキストから1つのセルに複数の色付きチップを表示し、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 はすべてを選択します
  • 選択は行キーで保持されるので、並べ替え、フィルター、ライブ更新をまたいで残り、Ctrl+C でタブ区切りのテキストとしてコピーされます
  • RowHeader はレコードインジケーター、行番号、行ごとのチェックボックスを持つ帯を追加し、SelectionColor と SelectionTextColor は選択色を設定します
  • RowDragMode は選択した行を別のコントロールへドラッグし、VCL では Excel などの他のアプリケーションへもドラッグできます

VCL、FireMonkey、WinForms、WPF、Avalonia のグリッドに対応します。無料の .NET Community ビルドにも含まれます。

ヘルプのトピックを読む

編集とエクスポート

データを変更し、データベースと同期し、次の工程へ渡します。

編集とエクスポート 登録版のみ

検証付きでその場で編集

事務系のユーザーは、数量やステータスをグリッド上でそのまま修正できることを期待します。ReadOnly を False に設定すると、F2、Enter、文字入力、ダブルクリックでセル上にエディターが開き、列に PickList があればコンボボックスが開きます。入力したテキストは列のデータ型に変換され、OnValidate で値を変更または拒否でき、結果は UpdateCell で書き込まれるため、並べ替えや点滅もそのまま適用されます。

  • 列ごとの Editable があり、OnBeforeEdit で編集を拒否できます
  • Enter で確定、Tab で次の編集可能なセルへ移動、Escape でキャンセルします。StartEdit、CommitEdit、CancelEdit でコードから同じ操作ができます
  • 不正な入力では OnEditError がエディターを開いたままにし、OnEdited が変更前後の値を通知します

.NET Community ビルドには含まれません。

ヘルプのトピックを読む
数行で任意の TDataSet をバインド

編集とエクスポート

数行で任意の TDataSet をバインド

既存のデータベースコードはそのまま動作します。TsgcGridSource_DataSet が、FireDAC のクエリ、TClientDataSet、その他の任意の TDataSet からグリッドを作成します。Grid と DataSet を設定して Active にするだけで、行が表示されます。KeyField を指定すると、グリッドは再読み込みではなく同期され、変更された行はその場で更新されて点滅します。LiveUpdates を有効にすると、ポストされたすべての Append、Edit、Delete が、追加コードなしでグリッドに反映されます。

  • AutoColumns は、データセットのフィールドから列を作成します
  • KeyField を指定すると、新しいキーは追加され、存在しなくなったキーは削除されます
  • データセットは DisableControls を使って走査され、現在のレコードは復元されます
  • JSON と CSV にも対応します。GridLoadFromJSONFile、GridSaveToCSVFile、そして sgcGrid_IO のその他の関数があります
  • BLOB フィールドに保存された画像は gcdImage 列に表示され、ImagePreview はマウスをセルに置くと拡大した画像を表示します
  • ApplyFilter は DataSet にグリッドが表示している行だけを残し、OnApplySort はグリッドの並べ替えをクエリ用のフィールド名として渡します
  • VCL では、グリッドのコンテキストメニューの Import columns from DB grid コマンドが、TDBGrid の列、DataSet のリンク、イベントをデザイン時にコピーします
  • .NET では、同じクラスが DataTable を読み取ります
ヘルプのトピックを読む

編集とエクスポート 登録版のみ

ユーザーに本物の Excel ファイルを渡す

経理部門が求めるのは、スクリーンショットではなく Excel の数字です。SaveToXLSX は、外部ライブラリなしで、グリッドを Office Open XML ブックとしてファイルまたはストリームに書き出します。シートには、ユーザーに見えている内容が保たれます。表示順の表示列と幅および数値書式、固定されたヘッダー、折りたたみ可能なアウトラインとしてのグループとツリーの階層、SUBTOTAL 数式としてのグループ合計です。

  • SaveToXLSX は、ファイル名またはストリームと、任意のシート名を受け取ります
  • 数値は数値のまま、日付は Excel の日付になり、DisplayFormat はセルの数値書式になります
  • 折りたたまれたグループは、グリッドで表示されていたとおり、Excel でも折りたたまれた状態で開きます
  • UI スレッドから呼び出してください。詳細バンドはエクスポートされません
  • 折りたたまれているかどうかにかかわらず、すべてのグループ行とビュー行が書き出されます

JSON と CSV のエクスポートを備える .NET Community ビルドには含まれません。

ヘルプのトピックを読む

編集とエクスポート 登録版のみ

グリッドの中で、軽量な表計算ソフトのように作業する

営業部門からブックが届き、Excel を何往復もせずに手早く試算したい。そんなときに役立ちます。ExcelMode を True にすると、グリッドは軽量な表計算ソフトのように動作します。ユーザーは範囲を選択し、フィルハンドルをドラッグして連続データを延長し、= で始まる数式を入力し、セルを書式設定し、複数のシートで作業できます。LoadFromXLSX は、外部ライブラリも Excel のインストールも不要で、ファイルまたはストリームからブックそのものを開きます。

  • 範囲選択: 矩形をドラッグし、Shift+矢印キーで拡張し、Ctrl+C でコピーします
  • フィルハンドルは数値と日付の連続データを延長し、テキストをコピーし、数式の相対参照をずらします。各フィルは元に戻す操作 1 回分で、OnBeforeFill で拒否することもできます
  • + - * / ^ & の演算子、比較、A1、$A$1、A1:B5 の参照、SUM、AVERAGE、MIN、MAX、COUNT、IF、ROUND、ABS を使える数式
  • エラーは #DIV/0!、#REF!、#NAME?、#VALUE! で表示され、循環参照は #CIRC! になります。値は編集のたびに再計算され、並べ替え、フィルター、集計は計算結果を使います
  • セル単位の書式設定: 太字、斜体、下線、取り消し線、フォントサイズと色、塗りつぶしの色、水平方向と垂直方向の配置、折り返し、表示形式、罫線を、FormatSelection または Ctrl+B、Ctrl+I、Ctrl+U、Ctrl+5 で設定します。書式の変更は 1 回ごとに元に戻す操作 1 回分です
  • 1 つのグリッドに複数のシート: ShowSheetTabs を使うと、タブ バーでシートの追加、名前の変更、削除、並べ替えができます。数式は Orders!E1:E20 や 'Q4 Notes'!B1 のような参照で他のシートを読み取り、名前を変更するとこれらの参照も書き換えられます
  • Excel モードの SaveToXLSX は、すべてのシートを、シート名、セルの書式、Excel の数式として書き出した数式 (計算結果をキャッシュ) とともに書き出します。行はストアの順序で出力されるので、参照は正確なままです
  • LoadFromXLSX は、Excel モードではブックのすべてのシートを、それ以外ではシート 1 つを名前またはインデックスで読み込み、ヘッダー行から型を推測して列を作成し、文字列、数値、ブール値、日付 (1904 年日付システムを含む) を読み込みます
  • ブックの数式とセルの書式は Excel モードではそのまま使える状態で取り込まれ、それ以外では数式はキャッシュされた値として取り込まれます
  • 列の Formula (たとえば =C1*D1) は 1 行目向けに書き、読み取り専用の列のすべての行を計算します。メモリ上のデータ、仮想モード、DataSet ソースで動作し、仮想モードでは OnGetValue が返す数式テキストも評価されます

完全な表計算ソフトではありません。グラフ、セルの結合はなく、DataSet ソースではセルの数式も使えず、その代わりに列の数式を使います。VCL、FireMonkey、WinForms、WPF、Avalonia で利用でき、.NET Community ビルドでは利用できません。

ヘルプのトピックを読む セルの書式設定のトピックを読む シートのトピックを読む 列の数式のトピックを読む
DataSetEditing デモ:グリッドと同じレコードを共有する TDBNavigator と 2 つの TDBEdit、カテゴリのルックアップ列

編集とエクスポート 登録版のみ

グリッドを通して DataSet を編集する

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 のみです。

ヘルプのトピックを読む
ダークテーマの Editing デモ:Date 列で日付ピッカーが開いている

編集とエクスポート 登録版のみ

日付ピッカー、Excel からの貼り付け、元に戻す、やり直し

各列は、自分を編集するコントロールを選びます。EditorKind は、日付、時刻、日付と時刻のピッカー、矢印付きの数値ボックス、色ピッカー、sgcEditors のトークンエディターから選び、既定値は列のデータ型から決まります。Ctrl+V は Excel からコピーしたブロックを貼り付けます。すべての値は、何かを書き込む前に変換と検証が行われ、貼り付け全体が 1 回の元に戻す操作になります。Ctrl+Z と Ctrl+Y は、編集と貼り付けを元に戻し、やり直します。

  • OnCreateEditor は、たとえば TTrackBar のような好きなコントロールをセルに置きます
  • gedMemo は長いテキストを複数行で編集し、gedLookup は複数列のリストから値を選びます。リストは LookupItems またはルックアップフィールドから埋められます
  • チェック列はその場で切り替えられ、TrueValue または FalseValue を書き戻します
  • PasteText と PasteFromClipboard はコードからも使え、OnBeforePaste はテキストを変更または拒否できます
  • 変換できない値が 1 つでもある場合や、OnValidate が拒否した場合は、何も書き込まれる前に貼り付けが中止されます
  • 元に戻す操作は行キーとフィールド単位で動くので、並べ替えやフィルターのあとでも行を見つけ、その間にライブ更新が変えた値は保持します
  • UndoLimit は直近 100 ステップを保持します。Undo、Redo、CanUndo はコードからも使えます

VCL、FireMonkey、WinForms、WPF、Avalonia のグリッドに対応します。.NET Community ビルドには含まれません。

ヘルプのトピックを読む

スケールと接続

数百万行、ライブフィード、そして自然な言葉での操作。

数百万行を、読み込まずに閲覧

スケールと接続

数百万行を、読み込まずに閲覧

すでに別の場所にあるログのアーカイブ、センサーの履歴、クエリ結果を、メモリにコピーする必要はありません。仮想モードでは、グリッドは行を保持しません。VirtualRowCount が行数を伝え、行がスクロールで表示されたときに OnGetValue が値を返します。描画されるのは表示されている行だけなので、100 万行のグリッドでも 50 行のグリッドと同じ程度の負荷です。ソースが増えるにつれて、行数を変更してください。

  • グリッドデータの Virtual と VirtualRowCount、セルは OnGetValue が供給します
  • フッターの集計も、OnGetValue を通じて値を読み取ります
  • 仮想行にはキーがないため、ソースの順序が維持され、並べ替え、フィルター、点滅は使えません。データソース側で並べ替え、フィルター、グループ化をするには、下のサーバーモードを使います
  • 終わりなく増えるフィードには、キー付きの代替手段として MaxRows と TailMode を使います
ヘルプのトピックを読む
数百万行のデータベーステーブルをページ単位で表示

スケールと接続 登録版のみ

数百万行のデータベーステーブルをページ単位で表示

注文履歴や監査テーブルは大きすぎて読み込めませんが、それでもユーザーはソートし、フィルターし、グループ化したいものです。サーバーモードでは、プロバイダーコンポーネントが一度に 1 ページ分の行を読み込み、ソート、列フィルター、フィルター行、検索テキスト、フッターの集計、グループ化、行数はデータソースが評価します。数百万行のテーブルでも 50 行のテーブルと同じ速さで開き、読み取られるのは表示されているページだけです。

  • TsgcGridServerProvider_DataSet は、リクエストごとに、SQLite、SQL Server、PostgreSQL、MySQL、Oracle、Firebird、InterBase または汎用ダイアレクト向けの 1 つの SQL ステートメントを作成し、FireDAC、dbExpress、ADO、IBX、UniDAC、Zeos などの任意のクエリコンポーネントで実行します
  • .NET では、TsgcGridServerProvider_Queryable が任意の IQueryable(たとえば Entity Framework Core のセット)を読み取り、TsgcGridServerProvider_AdoNet が任意の ADO.NET 接続で同じ SQL を実行します
  • TsgcGridServerProvider_Callback は、REST サービスなどその他のソースを、すぐに、または後から任意のスレッドで応答するイベントで処理します
  • 行は PageSize 単位のブロックでキャッシュ経由で読み込まれ、描画が待たされることはなく、まだ読み込まれていない行はページが届くまでプレースホルダーのバーで表示されます
  • グループ化はサーバー側で実行されます。レベルごとに 1 つの GROUP BY が、行数と集計付きのグループを返し、グループの子はそのグループを展開したときに読み込まれます
  • 編集内容はプロバイダー経由で書き戻され、エクスポート、印刷、コピーはすべての行をページ単位で読み取ります

サーバーモードでは、ツリー行と詳細バンドは使えず、フィルターポップアップには行数が表示されません。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 で 1 ステップ戻せます
  • LastExplanation は、何が適用され、何が無視されたかを伝えます。プロバイダーが失敗した場合は、ルールベースのパーサーが回答します
  • sgcGridWS ブリッジは、TsgcGridAIQuery と TsgcHTMLAIAssistant を引き続き提供し、TsgcGridFeedSource_WebSocket、TsgcGridFeedSource_MQTT、TsgcGridFeedSource_SSE も提供します。これらは JSON メッセージをキー指定でグリッドに書き込みます

Community を含むすべてのエディションで、VCL、FireMonkey、WinForms、WPF、Avalonia に対応します。sgcWebSockets プロバイダーと sgcGridWS ブリッジには、sgcWebSockets と登録版が必要です。

ヘルプのトピックを読む

アクセシビリティ

スクリーンリーダー、キーボード、ハイコントラスト向けの UI Automation を、設定なしで使えます。

アクセシビリティ

本物の表として公開されるグリッド

sgcGrid は、スクリーンリーダーの Narrator や NVDA などが使う API である Microsoft UI Automation に、列ヘッダー、行、セルを持つ表としてその内容を公開します。構築されるのは表示されている行だけで、行数と列数は常に全体の数なので、100 万行のグリッドでも負荷は増えません。

  • フォーカスされたセル、選択、並べ替え、フィルタ、グループ化、ツリー行は、Grid、Table、Selection パターンで公開されます
  • 矢印キー、Home、End、Page Up、Page Down でフォーカスセルを移動し、Shift で選択範囲を拡張し、Ctrl+Space で行またはセルを切り替え、F2 または Enter で編集します
  • Alt+Down でフィルターポップアップを開き、Alt+Shift+Left と Alt+Shift+Right で列を移動し、Ctrl+Shift+G でフォーカスされた列でグループ化し、Ctrl+Shift+U でそのグループ化を解除します
  • 常に表示されるフォーカスリング。Windows のハイコントラストテーマでは、グリッドはシステムカラーで描画されます

アクセシビリティは、無料の Community 版を含むすべてのエディションで既定で有効です。VCL では Delphi 7 から Delphi 13 までのすべての Delphi と C++Builder のバージョンで、FireMonkey では Windows で、そして WinForms、WPF、Avalonia で使えます。 Delphi と C++Builder では、AccessibleName と AccessibleDescription が UI Automation に公開される名前と説明を設定し、.NET では各フレームワーク標準のアクセシブルな名前とヘルプテキストが同じ役割を果たします。アクセシビリティ適合レポートを参照してください。 Avalonia にはテーブルパターンがないため、各セルは名前とヘルプテキストに列と位置を含みます。列幅の変更はマウスでのみ行えます。

ヘルプのトピックを読む

sgcGrid の動作を見る

sgcUI スイートのデモに含まれる sgcGrid:組み込みのシミュレーションデータでオフラインで動作する完全なアプリケーションです。

1080p のフレームを数ミリ秒で描画

sgcGrid の QA パフォーマンスゲートの直近の平均値です。列数 12、行数 10 万、表示行数 45 の 1920 x 1080 フレームを、ラスターキャンバスで 60 回描画しました。ゲートは、Win64 ではフレームあたり 16 ms、Win32 では 25 ms を超えると失敗とします。

測定項目結果条件
通常のフレーム3.0 msWin32
通常のフレーム4.6 msWin64
通常のフレーム3.7 msLinux64
点滅と 3 つの書式ルール3.2 msWin32
点滅と 3 つの書式ルール6.8 msWin64
LiveTicker デモ、ワーカースレッドからの書き込み1 秒あたり約 1,000 件の更新60 fps で並べ替え済み、点滅するグリッド

出典: これらの数値を解説しているヘルプのトピック。

sgcGrid の主な利用シーン

トレーディングと市場データのデスク

気配値ボードは、毎秒数百の価格が変わっても読みやすさを保つ必要があります。フィードのスレッドは UpdateRow で書き込み、UI を待つことはありません。変更時の点滅がすべての値動きの方向を示し、テールモードが取引ログを最新の約定に合わせ続けます。sgcGridWS ブリッジを使えば、WebSocket、MQTT、SSE から気配値を読み取れます。

  • リアルタイム更新
  • 変更時の点滅
  • テールモード
  • ライブフィード
LiveTicker デモを実行する

バックオフィスと基幹業務

受注入力、在庫一覧、請求の画面は、データベースの上で動いています。既存の TDataSet をバインドし、ユーザーが顧客別や月別にグループ化してすべてのグループ行で合計を確認し、検証付きでその場で値を修正し、経理部門がグループと SUBTOTAL 数式をそのまま開けるブックをエクスポートできます。

  • DataSet のバインド
  • グループ化と集計
  • その場での編集
  • Excel エクスポート
DataSetGrid デモを実行する

監視、ログ、アラート

運用画面では、終わりのないイベントストリームを表示します。MaxRows でログの上限を設け、書式ルールでエラーを赤く表示し、仮想モードで数百万行のアーカイブを必要に応じて閲覧できます。Linux64 サーバーでは、レンダラーが同じグリッドを PNG または SVG ファイルに書き出し、アラートメールに添付できます。

  • 書式ルール
  • MaxRows とテールモード
  • 仮想モード
  • ヘッドレスの PNG と SVG
LiveFeed デモを実行する

数行で作るリアルタイムグリッド

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.WinForms

ヘルプのトピックを読む →

sgcGrid のデモを実行する

Delphi 向け 19 本(うち 5 本は FireMonkey)、C++ Builder 向け 13 本、WinForms、WPF、Avalonia の .NET 向け 24 本のデモがあります。

LiveTicker

LiveTicker

ワーカースレッドから UpdateRow で毎秒約 1,000 件の価格更新を行い、並べ替え済みのビュー、点滅するセル、マイナス変化の書式ルールを備えています。VCL、FireMonkey、C++ Builder、WinForms、WPF、Avalonia に対応します。

DataSetGrid

DataSetGrid

200 レコードの TClientDataSet に、KeyField、AutoColumns、LiveUpdates を指定した TsgcGridSource_DataSet をバインドし、JSON と CSV のエクスポートとインポートも行います。

登録版のみ Spreadsheet

タブ バーに 3 つのシートを並べた Excel モードです。Orders は Total 列に列の数式 =C1*D1 を持ち、Summary は =SUM(Orders!E1:E20) などシート間の数式を持ち、もう 1 つは Notes です。ツールバーで選択範囲の書式設定とシートのコマンドを実行でき、数式、書式、シート名を保ったまま XLSX ファイルを保存して開けます。VCL、FireMonkey (SpreadsheetFMX)、C++ Builder、WinForms、WPF、Avalonia に対応します。

ServerModeAndCards

登録版のみ ServerModeAndCards

メモリ内の FireDAC SQLite データベースにある 20 万件の生成された注文を、TsgcGridServerProvider_DataSet がページ単位で読み込みます。テーブルとカードの切り替え、ソート、フィルター、検索、フッターの合計、国と顧客によるグループ化(件数と合計は SQL で計算)、データベースへの編集の書き戻しを試せます。VCL と C++ Builder に対応し、ServerModeAndCardsFMX は生成された 10 万行を TsgcGridServerProvider_Callback で読み込み、WinForms、WPF、Avalonia のデモには ADO.NET、IQueryable、コールバックのページがあります。

GroupAndSummary

GroupAndSummary

10 万件の注文を、グループパネル、Count、Sum、Average の集計、フッター、2 つの固定列を使って、Region と Category でグループ化します。.NET では Grouping という名前です。

FilterAndFind

FilterAndFind

10 万行の売上データに、ファネルのポップアップ、フィルター行、検索パネルを組み合わせ、列チューザー、最適幅、ファイルに保存して読み込み直すレイアウトも備えています。VCL、FireMonkey、C++ Builder、WinForms、WPF、Avalonia に対応します。

BandsAndCells

BandsAndCells

2,000 銘柄を Instrument、Live data、Price、Position のバンドの下に表示し、スパークライン、進捗、画像のセル、複数行の選択、Copy ボタンを備えています。VCL、C++ Builder、WinForms に対応します。

登録版のみ Editing

選択リスト列、Space で切り替えるブール列、マイナスの数量を拒否する OnValidate、OnEditError、OnEdited のログを備えています。さらに sgcEditors の日付、時刻、数値、色、トークンのエディター、OnCreateEditor 経由の TTrackBar、貼り付け、元に戻す、やり直しも試せます。

DataSetEditing

登録版のみ DataSetEditing

製品とカテゴリを 2 つの TClientDataSet に持ち、TDBNavigator と 2 つの TDBEdit がグリッドと同じレコードを共有します。WriteBack、SyncCursor、ルックアップ列、挿入、削除、元に戻すを備えています。VCL、C++ Builder、WinForms(AddLookup を備えた DataTable)に対応します。

TreeAndDetail

登録版のみ TreeAndDetail

組織図のツリーと、TsgcGridDataStore から注文の詳細バンドを取得する顧客一覧です。

登録版のみ ExcelExport

グループ化したグリッドとツリーグリッドを SaveToXLSX で保存し、表計算アプリケーションで開いて、アウトラインと集計が保たれていることを確認できます。

GridAndChart

ダッシュボード上のグリッドタイルとチャートタイルです。TsgcChartDataSource_Table がグリッドの行をプロットします。sgcCharts と sgcDashboard が必要です。

登録版のみ AskYourGrid

TsgcGridAI と AI クエリバーが、ネットワークも API キーも使わずに、自然な言葉の質問から 200 銘柄をフィルター、並べ替え、ハイライトします。TsgcGridAIQuery ブリッジも併用できます。sgcWebSockets が必要です。

登録版のみ LiveFeed

プロセス内の WebSocket サーバーが 50 銘柄の JSON バッチをブロードキャストし、TsgcGridFeedSource_WebSocket がキー指定でグリッドに書き込みます。Delphi と .NET に対応します。

コンパイル済みデモ

sgcUI 全製品のすぐに実行できる実行ファイルです。インストールは不要です。

sgcUI_bin.zip をダウンロード →

Getting Started ガイド

Delphi (VCL) 向けの QuickStart デモ 5 つが Demos\Grid\Delphi\00.QuickStart に入っています。PDF ガイドが、それらを順を追って解説します。最初のグリッド、型付きの列、セル内編集、データセットへの接続、フィルター・グループ化・合計を備えた受注アプリケーション。

ガイドをダウンロード(PDF、英語) →

sgcGrid が含まれるエディション

sgcGrid は単体でも販売しており、Standard 以上のすべての sgcUI エディションに含まれ、All-Access バンドルにも含まれます。

sgcGrid 単体パッケージ

€199 / 開発者、ソースコード一式、1 年間のアップデート付き。

sgcGrid を購入 → 価格を見る →

sgcUI Standard

sgcGrid、sgcNavigation、sgcToolbar、sgcEditors、€380 から。

Standard を見る →

sgcUI Professional

Standard に加えて sgcCharts、sgcDashboard、sgcGauges、€529 から。

Professional を見る →

sgcUI Enterprise

sgcUI 全 17 製品、€699 から。

Enterprise を見る →

無料の .NET Community 版は NuGet の esegece.sgcGrid.Community です。プロジェクトは Community パッケージか登録版パッケージのどちらか一方を参照し、両方を参照することはできません。無料の Delphi Community 版はダウンロードページにあります。

機能Community(無料)登録版
任意のスレッドからのリアルタイム更新、変更時の点滅、テールモード✓✓
フォントスタイルとアイコンセットを備えた書式ルール、テーマ✓✓
並べ替え、フィルター、選択✓✓
グループ化、グループパネル、集計✓✓
列の固定と列幅の変更✓✓
仮想モード✓✓
DataTable のバインド、グリッドのフィルターを適用した DataTable、JSON、CSV✓✓
ヘッドレスの PNG と SVG✓✓
日付の期間に対応した列フィルター、フィルター行、検索パネル✓✓
列チューザー、列の移動、最適幅、自動レイアウト、幅いっぱいに広がる列✓✓
バンド、画像、進捗、スパークライン、タグのセル、複数選択✓✓
チェックとリンクのセル、BLOB フィールドの画像、複数行のヘッダーと行、ヒント✓✓
チェックボックス付きの行ヘッダー、ヘッダーの画像とボタン、選択色、行のドラッグ&ドロップ✓✓
グリッドに質問:TsgcGridAI、AI クエリバー、任意の LLM プロバイダー✓✓
その場での編集、チェックボックスの切り替え、メモとルックアップのエディター−✓
双方向の DataTable 編集、貼り付け、元に戻す操作とやり直し、sgcEditors のセルエディター−✓
ツリー行とマスター詳細−✓
Excel エクスポート−✓
Excel モード、セルの書式設定、シート、列の数式−✓
サーバーモード:データベースのページ読み込み、ソート、フィルター、集計、サーバー側のグループ化−✓
カードビュー−✓
ライブフィード、TsgcGridAIQuery、sgcWebSockets AI プロバイダー(sgcGridWS と sgcUICoreWS のブリッジ)−✓

対応フレームワークとプラットフォーム

sgcGrid のコンポーネント

コンポーネントターゲット
TsgcVCLGridDelphi と C++ Builder、VCL(sgcGrid_VCL)
TsgcFMXGridDelphi XE6 以降の FireMonkey、Windows、macOS、iOS、Android 対応(sgcGrid_FMX)
TsgcGridData, TsgcGridColumns, TsgcGridFormatRules, TsgcGridLineView, TsgcGridRendererフレームワーク非依存の行ストア、列、書式ルール、レンダラー。Linux64 でも利用できます
TsgcGridAIフレームワーク非依存の自然言語クエリエンジン。すべてのエディションで、Linux64 でも利用できます(sgcGrid_AI)
TsgcVCLAIQueryBar, TsgcFMXAIQueryBar, TsgcUIAIEventProvidersgcUICore の AI クエリバーと AI プロバイダー。すべてのエディションで利用できます
TsgcUIAIChatProvidersgcUICoreWS ブリッジ:sgcWebSockets の TsgcAIChat を AI プロバイダーとして使います(登録版)
TsgcGridSource_DataSet, TsgcGridDataStoreTDataSet のバインディングと、マスター詳細バンドの行ストア
TsgcGridFeedSource_WebSocket, TsgcGridFeedSource_MQTT, TsgcGridFeedSource_SSE, TsgcGridAIQuerysgcWebSockets と連携する sgcGridWS ブリッジ(登録版)
TsgcWinFormsGrid, TsgcWpfGrid, TsgcAvaloniaGrid.NET、WinForms、WPF、Avalonia
TsgcGridAI, TsgcWinFormsAIQueryBar, TsgcWpfAIQueryBar, TsgcAvaloniaAIQueryBar.NET、WinForms、WPF、Avalonia 向けの自然言語クエリと AI クエリバー
ターゲットコンポーネントプラットフォーム
Delphi 7 から 13、VCLTsgcVCLGridWin32、XE2 以降は Win64
Delphi XE6 から 13、FireMonkeyTsgcFMXGridWindows、macOS、iOS、Android
C++ Builder 2007 から 13TsgcVCLGrid, TsgcFMXGrid生成された .hpp ヘッダーと静的ライブラリ
Delphi 10.2 から 13、フレームワーク非依存モデル、書式設定、レンダラー、JSON と CSVLinux64。たとえば、サーバー上でグリッドを画像として描画できます
.NET Framework 4.7.2、.NET 8、9 と 10TsgcWinFormsGrid、WPF、Avalonia のグリッドWinForms、WPF、Avalonia、ヘッドレスの PNG と SVG

よくある質問

はい。グリッドデータの AppendRow、UpdateRow、UpdateCell、DeleteRow はスレッドセーフなので、ワーカースレッドからキー指定で直接行を書き込めます。グリッドは、メインスレッドで 1 秒あたり最大 MaxFPS 回だけ再描画します。リアルタイム更新をご覧ください。

描画されるのは表示されている行だけなので、1 フレームのコストは行数ではなくウィンドウの大きさで決まります。QA ゲートでは、10 万行のグリッドの 1080p フレームを、Win32 で 3.0 ms、Win64 で 4.6 ms と計測しています。別の場所にあるデータには、仮想モードが行を保持せず、スクロールで表示されたときに値を要求します。パフォーマンスをご覧ください。

はい、サーバーモードで可能です。プロバイダーが一度に 1 ページ分の行を読み込み、ソート、列フィルター、フィルター行、検索テキスト、フッターの集計、グループ化、行数はデータベースが評価します。Delphi と C++ Builder では、TsgcGridServerProvider_DataSet が SQLite、SQL Server、PostgreSQL、MySQL、Oracle、Firebird、InterBase または汎用ダイアレクト向けの SQL を作成し、任意のクエリコンポーネントで実行します。.NET では、プロバイダーが IQueryable(たとえば Entity Framework Core のセット)または ADO.NET 接続を読み取り、コールバックプロバイダーがその他のソースを処理します。カードビューも同じようにページ単位で読み込みます。サーバーモードは登録版に含まれます。サーバーモードをご覧ください。

はい。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 で選択と点滅のアクセントカラーを設定します。

sgcGrid のヘルプ

移行をお考えですか?

TDBGrid または cxGrid からの移行ですか?

移行キットでは、お使いの TDBGrid と DevExpress cxGrid の各メンバーを sgcGrid の対応メンバーに結び付け、コンパイル済みデモのコード、番号付きの移行手順、既知の相違点を示します。

TDBGrid と cxGrid からの移行 →
sgcUI のすべての移行キット →
3,000+開発者
20+年
761+コンポーネント
30+API 連携
5プラットフォーム
30日間返金保証ご満足いただけない場合は、ご購入から30日以内に全額返金をリクエストできます。 返金ポリシーを見る

今すぐ sgcGrid をお試しください

sgcUI 体験版には、すべての機能を有効にした sgcGrid、sgcUI の他の 16 製品、すべてのデモプロジェクトが含まれます。