Delphi, C++ Builder & .NET sgcUI'nin parçası

sgcGrid, Delphi, C++ Builder & .NET için Canlı Veri Grid'i

Hiç durmayan veriler için tasarlanmış bir grid. Satırları herhangi bir iş parçacığından anahtara göre yazın, değişen hücrelerin yeşil veya kırmızı yanıp sönmesini izleyin, ardından aynı satırları gruplayın, filtreleyin, düzenleyin ve dışa aktarın. 100.000 satırlık bir grid'in 1080p karesi Win32'de 3,0 ms sürer.

VCL, FireMonkey, WinForms, WPF, Avalonia1080p kare başına 3,0 ms (Win32)Ücretsiz .NET Community sürümüsgcUI Standard içinde yer alır
sgcGrid, Bölge ve ardından Kategoriye göre gruplanmış 100.000 siparişle, grup paneli çipleri ve alt toplamlarla

Canlı Bir Grid'in İhtiyaç Duyduğu Her Şey

Beş grupta on sekiz özellik, her biri kendi yardım konusuna bağlanır.

Canlı Veri

Hiç durmayan akışlar: fiyatlar, telemetri, kuyruklar ve günlükler.

Canlı Veri

Herhangi bir iş parçacığından saniyede binlerce satırı güncelleyin

Bir piyasa akışı, bir sensör veri yolu veya bir iş kuyruğu doğrudan grid'e yazabilir. Her satırın bir anahtarı vardır ve bir işçi iş parçacığı, Synchronize çağrısı ve kendi kilitleme kodunuz olmadan bir anahtarın satırını alan adıyla günceller. Grid yalnızca yazan iş parçacığında kendini kirli olarak işaretler ve ana iş parçacığında saniyede en fazla MaxFPS kez yeniden çizer.

  • UpdateRow bir anahtarın adlandırılmış alanlarını ayarlar ve anahtar yeniyse satırı ekler; UpdateCell tek bir alanı değiştirir
  • AppendRow ve DeleteRow satırları anahtara göre, herhangi bir iş parçacığından ekler ve kaldırır
  • BeginUpdate ve EndUpdate bir toplu işlemi tek bir bildirime dönüştürür
  • Seçili satır her yeniden sıralamadan sonra anahtarıyla yeniden bulunur, bu yüzden hiç kaybolmaz
Yardım konusunu okuyun
Her değişikliği bir bakışta görün

Canlı Veri

Her değişikliği bir bakışta görün

Trader'lar ve operatörler her sayıyı okumadan neyin hareket ettiğini görmek ister. Varsayılan olan FlashChanges açıkken, değişen bir hücre değeri arttığında yeşile, azaldığında kırmızıya boyanır, ardından varsayılan olarak 800 milisaniye olan FlashDuration süresince solar. Günlükler ve büyüyen akışlar için kuyruk modu en yeni satırı görünümde tutar ve kullanıcı okumak için yukarı kaydırır kaydırmaz takibi bırakır.

  • FlashUpColor, FlashDownColor ve FlashChangedColor; 0 rengi tema varsayılanını kullanır
  • FlashMode arka planı (fmBackground) veya metni (fmText) boyar
  • TailMode en yeni satırı izler, MaxRows bitmeyen bir günlüğün en eski satırlarını atar
  • Seçim yanıp sönmenin üzerine, yanıp sönme ise biçim kurallarının üzerine boyanır
Yardım konusunu okuyun
Dikkat gerektiren satırları renklendirin

Canlı Veri

Dikkat gerektiren satırları renklendirin

Vadesi geçmiş bir fatura, negatif bir bakiye veya başarısız bir iş, kimse sormadan öne çıkmalıdır. Biçim kuralları bir sütunu o sütunun veri türünü kullanarak bir değerle karşılaştırır: sayılar sayısal olarak, tarihler tarih olarak, metin büyük küçük harf duyarsız. Eşleşen bir kural hücrenin veya tüm satırın arka plan rengini, metin rengini veya kalınlığını ayarlar ve canlı güncellemeler alttaki değerleri değiştirirken de çalışmaya devam eder.

  • TsgcGridFormatRules kurallarını koleksiyon sırasıyla değerlendirir, sonraki bir eşleşme öncekini geçersiz kılar
  • gfoLess, gfoBetween, gfoContains ve gfoIsEmpty gibi operatörler
  • ApplyToRow satırın her hücresini biçimlendirir, StopOnMatch bir hücre için değerlendirmeyi sonlandırır
  • Yarı saydam renkler hücreyi arka planının üzerinde boyar ve son sözü OnGetCellStyle söyler
Yardım konusunu okuyun

Veriyi Şekillendirin

Büyük satır kümelerini sıralayın, filtreleyin, gruplayın ve iç içe yerleştirin.

100.000 satırı tek çağrıda gruplayın ve toplayın

Veriyi Şekillendirin

100.000 satırı tek çağrıda gruplayın ve toplayın

Bölgeye göre satışlar, aya göre siparişler, duruma göre destek talepleri: kullanıcılar ham satırları değil toplamları ister. GroupBy grid'i bir veya daha fazla sütuna göre gruplar ve her grup satırı üyesini, satır sayısını ve satırlarının özetlerini gösterir. Kullanıcılar bir başlığı grup paneline sürükleyerek kendi başlarına yeniden gruplar. Gruplama yalnızca görünüm durumudur, bu yüzden grid'e bağlı bir grafik düz, sıralı satırları görmeye devam eder.

  • Koddan GroupBy ve ClearGrouping veya sütun başına GroupIndex
  • ShowGroupPanel sürükle bırak çipleri ekler; bir çipe tıklamak grup sırasını çevirir
  • SummaryType gsuSum, gsuCount, gsuAverage, gsuMin veya gsuMax, SummaryFormat ile biçimlendirilir
  • Her grup satırında GroupSummaries ve genel toplamlar için ShowFooter
  • yyyy-mm biçimli bir DisplayFormat tarihleri aya göre gruplar
Yardım konusunu okuyun
Büyük veride sıralayın, filtreleyin ve arayın

Veriyi Şekillendirin

Büyük veride sıralayın, filtreleyin ve arayın

Binlerce müşteri arasında birini bulmak birkaç tuş vuruşu almalıdır. FilterText, biçimlendirilmiş metni yazılan sözcükleri görünür herhangi bir sütunda içeren satırları tutar ve bir OnFilterRow işleyicisi bunun üstüne kendi kurallarınızı ekler. Bir başlığa tıklamak sıralar, Ctrl ve tıklama çok sütunlu sıralamaya bir sütun ekler ve sıralama kararlıdır. Ne sıralanmış ne de filtrelenmiş, sürekli güncellenen bir sütun hiç yeniden sıralama maliyeti yaratmaz.

  • Sütun başına SortOrder ve SortIndex, her değişiklikten sonra OnSortChange
  • FilterText büyük küçük harf duyarsızdır ve metni kullanıcının gördüğü şekilde okur
  • Özel mantık için OnFilterRow, bu mantık değiştiğinde InvalidateView
  • SelectionMode satırları veya hücreleri seçer ve Ctrl+C bunları sekmeyle ayrılmış metin olarak kopyalar
  • Null, boş ve dönüştürülemeyen değerler her zaman başa sıralanır
Yardım konusunu okuyun
Ağaç satırları ve ayrıntı bantlarıyla hiyerarşileri gösterin

Veriyi Şekillendirin Yalnızca Kayıtlı

Ağaç satırları ve ayrıntı bantlarıyla hiyerarşileri gösterin

Bir organizasyon şeması veya malzeme listesi en iyi ağaç olarak, bir müşterinin siparişleri ise en iyi müşterinin hemen altında okunur. Ağaç satırları, satırları bir anahtar sütunundan ve bir üst sütundan derinlik öncelikli olarak yerleştirir. Ayrıntı bantları, herhangi bir ana satırın altında kendi başlığı, kaydırması ve sıralaması olan, bir TsgcGridDataStore, başka bir grid veya bir olaydan doldurulan ilişkili satırların küçük bir grid'ini açar.

  • Tree.KeyField ve Tree.ParentField ağacı açar; ExpandNode ve CollapseNode koddan çalışır
  • Genişletilmiş durum anahtar başına tutulur, bu yüzden sıralama, filtreleme ve canlı güncellemelerden sağ çıkar
  • Detail.MasterKeyField ve Detail.DetailKeyField bir bandı kaynağına bağlar, OnGetDetailData onu isteğe bağlı doldurur
  • Bantlar düz, gruplanmış ve ağaç modunda çalışır ve değişen ayrıntı hücreleri ana grid gibi yanıp söner

Gruplamayı koruyan .NET Community sürümünde yoktur.

Yardım konusunu okuyun
Geri kalanlar kayarken anahtar sütunları görünümde tutun

Veriyi Şekillendirin

Geri kalanlar kayarken anahtar sütunları görünümde tutun

Sembol veya müşteri adı kaydığında geniş grid'ler bağlamlarını kaybeder. FrozenColumns ilk görünür sütunları yerinde tutarken diğerleri yatay kayar; başlık, alt bilgi ve grup özetleri de aynı bölünmeyi izler. Kullanıcılar başlık kenarını sürükleyerek sütunları yeniden boyutlandırır ve başsız oluşturucu aynı ayarı kullanır, bu yüzden dışa aktarılan görüntüler ekranla eşleşir. Soldaki grup okları da hiç kaymaz.

  • FrozenColumns görünür sütunları sayar ve bir piksellik bir çizgi dondurulmuş kenarı işaretler
  • Klavye hareketleri, kaydırılmış bir sütunu dondurulmuş kenarın sağında görünüme getirir
  • Oluşturucunun FrozenWidth değeri kaymayan genişliği döndürür
  • MinWidth yeniden boyutlandırmayı sınırlar, OnColumnResized yeni genişliği bildirir
  • Her sürümün parçası, ücretsiz .NET Community sürümü dahil
  • Arapça ve İbranice için sağdan sola: ilk sütun sağda yer alır, dondurulmuş sütunlar sağ kenarda kalır ve sağdan sola bir gridin XLSX dışa aktarımı sağdan sola bir sayfa yazar
Yardım konusunu okuyun
FilterAndFind demosu: huni düğmeleri, (2 değer) ve > 500 içeren bir filtre satırı ve Nakatomi'yi vurgulayan bulma paneli

Veriyi Şekillendirin

Hesap tablosu gibi filtreleyin ve her değeri bulun

Kullanıcılar Excel'den tanıdıkları huniyi bekler. ShowFilterButtons onu her sütun başlığına koyar: sütunun benzersiz değerlerini ve satır sayılarını, bir arama kutusunu ve Ve ya da Veya ile bağlanan en fazla iki türlü koşulu içeren bir açılır pencere açar. ShowFilterRow başlığın altına, kullanıcı yazarken bir sütunu filtreleyen bir satır ekler; Ctrl+F ise her hücredeki metni vurgulayan ve eşleşmeden eşleşmeye atlayan bulma panelini açar.

  • Her sütunun bir filtresi vardır; açılır pencereden, filtre satırından ve kodda Column.Filter ile düzenlenir, böylece üçü her zaman aynı fikirdedir
  • Filtrelenmiş iki sütunun değer listeleri birbirini daraltır ve dolu bir huni hangi sütunların filtrelediğini gösterir
  • Sütun başına FilterRowOperator: eşittir, büyüktür, içerir, ile başlar, boştur ve daha fazlası
  • FindText, FindNext ve FindPrevious koddan çalışır, FindOnlyMatches ise eşleşmeyen satırları gizler
  • Sütun filtreleri FilterText ve OnFilterRow ile birlikte uygulanır, OnFilterChange her değişikliği bildirir

VCL, FireMonkey, WinForms, WPF ve Avalonia grid'lerinde, ücretsiz .NET Community sürümü dahil.

Yardım konusunu okuyun

Veriyi Şekillendirin

Kullanıcılar sütunları düzenler ve düzen kalır

Bir sütun başlığına sağ tıklamak; sıralayan, gruplayan, genişlikleri uyduran, filtreleyen ve her sütun için bir onay kutusu içeren sütun seçiciyi açan bir menü açar. Kullanıcılar sütunu taşımak için başlığı sürükler, başlık kenarına çift tıklamak ise genişliği başlığa ve hücrelere uydurur. SaveLayoutToString ve LoadLayoutFromString bunların hepsini kısa bir JSON metni olarak saklar, böylece grid kullanıcının bıraktığı gibi açılır.

  • HeaderMenu, ColumnMoving ve BestFitOnDblClick varsayılan olarak açıktır ve atanmış bir PopupMenu yine önceliklidir
  • ShowColumnChooser seçiciyi bir düğmeden ya da kendi menü öğenizden açar
  • Taşınan bir sütun, sabitlenmiş sütunların kendi tarafında ve kendi bandı içinde kalır; OnColumnMoved taşımayı bildirir
  • BestFitColumn ve BestFitColumns başlığı ve örneklenen en fazla 1.000 satırı ölçer, bu yüzden bir milyon satırın maliyeti yaklaşık bin satırınki kadardır
  • Düzen sütun sırasını, genişlikleri, görünürlüğü, sıralamayı, gruplamayı, sütun filtrelerini, bantları ve panel seçeneklerini saklar; SaveLayoutToFile ve LoadLayoutFromFile bir dosya kullanır

VCL, FireMonkey, WinForms, WPF ve Avalonia grid'lerinde, ücretsiz .NET Community sürümü dahil.

Yardım konusunu okuyun
BandsAndCells demosu: Instrument, Live data, Price ve Position bantları, alan sparkline'ları, ilerleme çubukları, durum simgeleri ve üç seçili satır

Veriyi Şekillendirin

Bant başlıkları, zengin hücreler ve çoklu satır seçimi

Alım satım ekranı, Last, Change ve eğilim tek bir Price başlığı altında durduğunda daha iyi okunur. Bands sütun grupları üzerine, istenen kadar düzeyde başlıklar ekler ve her sütun bandını Band içinde belirtir. CellKind bir hücreyi görüntü, ilerleme çubuğu veya sparkline olarak çizer; hücre düz değerini korur, böylece sıralama, gruplama ve dışa aktarma sayıyı görmeye devam eder.

  • Bands.Add bir başlık ve bir üst bant alır, bant satırları sütun başlığının üzerinde üst üste dizilir
  • gcdProgress, ProgressMin ve ProgressMax kullanır; gcdSparkline bir sayı listesinden çizgi, alan veya çubuk grafik çizer
  • gcdImage, CellImages içinden bir görüntü çizer; grid onu Images ile atanan herhangi bir görüntü listesinden doldurur
  • SelectionMode gsmMultiRow Ctrl ve Shift ile istenen satırları, gsmCellRange bir hücre aralığını seçer, Ctrl+A ise hepsini seçer
  • Seçim satır anahtarına göre tutulur, bu yüzden sıralama, filtreleme ve canlı güncellemelerden etkilenmez; Ctrl+C onu sekmeyle ayrılmış metin olarak kopyalar

VCL, FireMonkey, WinForms, WPF ve Avalonia grid'lerinde, ücretsiz .NET Community sürümü dahil.

Yardım konusunu okuyun

Düzenleyin ve Dışa Aktarın

Veriyi değiştirin, veritabanınızla eşitleyin, başkasına aktarın.

Düzenleyin ve Dışa Aktarın Yalnızca Kayıtlı

Doğrulamayla yerinde düzenleyin

Büro çalışanları bir miktarı veya durumu doğrudan grid'de düzeltmeyi bekler. ReadOnly değerini False yapın; F2, Enter, yazılan bir karakter veya çift tıklama hücrenin üzerinde bir düzenleyici açar, sütunun bir PickList listesi varsa bir açılır liste açar. Yazılan metin sütunun veri türüne dönüştürülür, OnValidate değeri değiştirebilir veya reddedebilir ve sonuç UpdateCell ile yazılır, böylece sıralama ve yanıp sönme yine geçerli olur.

  • Sütun başına Editable, ve OnBeforeEdit bir düzenlemeyi reddedebilir
  • Enter kaydeder, Tab sonraki düzenlenebilir hücreye geçer, Escape iptal eder; StartEdit, CommitEdit ve CancelEdit aynısını koddan yapar
  • OnEditError hatalı girişte düzenleyiciyi açık tutar, OnEdited eski ve yeni değeri bildirir

.NET Community sürümünde yoktur.

Yardım konusunu okuyun
Herhangi bir TDataSet'i birkaç satırda bağlayın

Düzenleyin ve Dışa Aktarın

Herhangi bir TDataSet'i birkaç satırda bağlayın

Mevcut veritabanı kodu çalışmaya devam eder: bir TsgcGridSource_DataSet grid'i bir FireDAC sorgusundan, bir TClientDataSet'ten veya başka herhangi bir TDataSet'ten doldurur. Grid ve DataSet değerlerini ayarlayın, Active yapın ve satırlar görünür. Bir KeyField ile grid yeniden yüklenmek yerine eşitlenir, böylece değişen satırlar yerinde güncellenir ve yanıp söner. LiveUpdates açıkken, gönderilen her Append, Edit ve Delete ek kod olmadan grid'e ulaşır.

  • AutoColumns sütunları veri kümesi alanlarından oluşturur
  • Bir KeyField ile yeni anahtarlar eklenir ve eksik anahtarlar silinir
  • Veri kümesi DisableControls ile dolaşılır ve geçerli kaydı geri yüklenir
  • JSON ve CSV de: GridLoadFromJSONFile, GridSaveToCSVFile ve sgcGrid_IO'nun geri kalanı
  • .NET'te aynı sınıf bir DataTable okur
Yardım konusunu okuyun

Düzenleyin ve Dışa Aktarın Yalnızca Kayıtlı

Kullanıcılara gerçek bir Excel dosyası verin

Muhasebe sayıları ekran görüntüsü olarak değil, Excel'de ister. SaveToXLSX grid'i harici bir kütüphane olmadan bir dosyaya veya akışa Office Open XML çalışma kitabı olarak yazar. Sayfa kullanıcının gördüğünü korur: görüntüleme sırasında görünür sütunlar, genişlikleri ve sayı biçimleriyle, dondurulmuş başlık, daraltılabilir bir anahtar hattı olarak gruplar ve ağaç düzeyleri, ve SUBTOTAL formülleri olarak grup toplamları.

  • SaveToXLSX bir dosya adı veya bir akış ve isteğe bağlı bir sayfa adı alır
  • Sayılar sayı olarak kalır, tarihler Excel tarihi olur ve bir DisplayFormat hücre sayı biçimine dönüşür
  • Daraltılmış gruplar, grid'in gösterdiği gibi Excel'de daraltılmış olarak açılır
  • Kullanıcı arayüzü iş parçacığında çağırın; ayrıntı bantları dışa aktarılmaz
  • Daraltılmış olsun olmasın her grup satırı ve görünüm satırı yazılır

JSON ve CSV dışa aktarmayı koruyan .NET Community sürümünde yoktur.

Yardım konusunu okuyun
DataSetEditing demosu: grid ile aynı kayıtlar üzerinde bir TDBNavigator ve iki TDBEdit, kategori için bir lookup sütunuyla

Düzenleyin ve Dışa Aktarın Yalnızca Kayıtlı

DataSet'i grid üzerinden düzenleyin

WriteBack açıkken bir TsgcGridSource_DataSet, her grid düzenlemesini satırının kaydına yazar. Kaydı KeyField ile bulur ve değeri post eder. Post başarısız olursa, örneğin bir BeforePost denetiminde, kayıt iptal edilir ve hücre eski değerini korur. SyncCursor geçerli kaydı ve odaklı satırı bir arada tutar, böylece aynı veri kümesindeki bir TDBNavigator ve TDBEdit denetimleri grid'i, grid de onları izler.

  • AllowInsert: Ins bir kayıt ekler ve post eder, veri kümesinin OnNewRecord olayı varsayılanları doldurur
  • AllowDelete: OnBeforeDelete kabul ettiğinde Ctrl+Del seçili satırları ve kayıtlarını siler
  • Lookup alanları, lookup sonuçlarından bir seçim listesi olarak düzenlenir ve eşleşen anahtar yazılır
  • OnEditError veri kümesinin iletisini gösterir; yapıştırılan değerler ve geri alma aynı yazma yolunu kullanır

VCL, FireMonkey, WinForms, WPF ve Avalonia grid'lerinde; .NET Community sürümünde yoktur. .NET'te kaynak bir DataTable'a geri yazar, AddLookup lookup sütunlarını ekler ve SyncCursor yalnızca Delphi'dedir.

Yardım konusunu okuyun
Date sütununda açık bir tarih seçicisiyle koyu temada Editing demosu

Düzenleyin ve Dışa Aktarın Yalnızca Kayıtlı

Tarih seçiciler, Excel'den yapıştırma, geri alma ve yineleme

Her sütun, kendisini düzenleyen denetimi seçer. EditorKind bir tarih, saat veya tarih ve saat seçicisi, bir spin düzenleyicisi, bir renk seçicisi ya da sgcEditors'tan bir belirteç düzenleyicisi seçer; varsayılan, sütunun veri türüne göre belirlenir. Ctrl+V, Excel'den kopyalanan bir bloğu yapıştırır: her değer, herhangi bir şey yazılmadan önce dönüştürülür ve denetlenir, yapıştırmanın tamamı ise tek bir geri alma adımıdır. Ctrl+Z ve Ctrl+Y düzenlemeleri ve yapıştırmaları geri alır ve yineler.

  • OnCreateEditor bir hücreye istenen herhangi bir özel denetimi, örneğin bir TTrackBar, koyar
  • PasteText ve PasteFromClipboard koddan çalışır, OnBeforePaste metni değiştirebilir veya reddedebilir
  • Dönüştürülemeyen ya da OnValidate tarafından reddedilen bir değer, herhangi bir şey yazılmadan önce yapıştırmayı durdurur
  • Geri alma satır anahtarı ve alan üzerinden çalışır, bu yüzden satırlarını sıralama ve filtrelemeden sonra da bulur ve bu arada bir canlı güncellemenin değiştirdiği değeri korur
  • UndoLimit son 100 adımı tutar; Undo, Redo ve CanUndo koddan çalışır

VCL, FireMonkey, WinForms, WPF ve Avalonia grid'lerinde; .NET Community sürümünde yoktur.

Yardım konusunu okuyun

Ölçekleyin ve Bağlayın

Milyonlarca satır, canlı akışlar ve sade bir dil.

Milyonlarca satırı yüklemeden gezin

Ölçekleyin ve Bağlayın

Milyonlarca satırı yüklemeden gezin

Başka bir yerde zaten bulunan günlük arşivlerinin, sensör geçmişlerinin ve sorgu sonuçlarının belleğe kopyalanması gerekmez. Sanal modda grid hiç satır saklamaz: VirtualRowCount kaç satır olduğunu söyler ve OnGetValue, satırı görünüme kaydığında bir değer döndürür. Yalnızca görünür satırlar boyanır, bu yüzden bir milyon satırlık bir grid elli satırlık bir grid kadar maliyetlidir. Sayıyı kaynak büyüdükçe değiştirin.

  • Grid verisinde Virtual ve VirtualRowCount, hücreleri OnGetValue sağlar
  • Alt bilgi özetleri değerlerini OnGetValue üzerinden okur
  • Sanal satırların anahtarı yoktur, bu yüzden kaynak sırasını korur; sıralama, filtreleme veya yanıp sönme olmaz
  • Sonsuza dek büyüyen akışlar için TailMode ile MaxRows anahtarlı alternatiftir
Yardım konusunu okuyun

Ölçekleyin ve Bağlayın

Kullanıcıların grid'e sade dille sormasına izin verin

Her kullanıcı filtre oluşturmak istemez. TsgcGridAI, price greater than 100 sort by volume descending highlight change less than 0 gibi bir soruyu grid üzerinde filtrelere, sıralamalara ve satır vurgularına dönüştürür ve yapay zeka sorgu çubuğu kullanıcılara bunu yazacakları bir yer sunar. Atanmış bir sağlayıcı yoksa kural tabanlı bir ayrıştırıcı yerel olarak, ağ ve API anahtarı olmadan yanıtlar. Bir sağlayıcı atayın, yanıtı herhangi bir LLM verir: TsgcUIAIEventProvider her isteği kendi kodunuza iletir, TsgcUIAIChatProvider ise sgcWebSockets'in TsgcAIChat bileşenini kullanır. Yalnızca alan kataloğu gönderilir, yani sütunların adları, başlıkları, türleri ve birkaç örnek değeri, satırlar asla. Grid'in uygulayamadığı istekler, örneğin gruplama veya satır sınırları, tahmin edilmek yerine bildirilir.

  • Sorgu çubuğu: TsgcVCLAIQueryBar, TsgcFMXAIQueryBar, TsgcWinFormsAIQueryBar, TsgcWpfAIQueryBar ve TsgcAvaloniaAIQueryBar; son sorular, öneriler, İptal ve Geri Al ile
  • Filtreler OnFilterRow üzerinden geçer, vurgular ApplyToRow biçim kurallarına dönüşür
  • Her yanıt bir öncekinin yerine geçer ve Undo bir adım geri gider
  • LastExplanation neyin uygulandığını söyler, sağlayıcı başarısız olduğunda ise kural tabanlı ayrıştırıcı yanıtlar
  • sgcGridWS köprüsü TsgcHTMLAIAssistant ile TsgcGridAIQuery bileşenini korur ve JSON mesajlarını anahtara göre grid'e yazan TsgcGridFeedSource_WebSocket, TsgcGridFeedSource_MQTT ve TsgcGridFeedSource_SSE bileşenlerini getirir

Her sürümde, Community dahil; VCL, FireMonkey, WinForms, WPF ve Avalonia üzerinde. sgcWebSockets sağlayıcısı ve sgcGridWS köprüsü sgcWebSockets ve Kayıtlı bir sürüm gerektirir.

Yardım konusunu okuyun

Erişilebilirlik

Ekran okuyucular, klavye ve yüksek karşıtlık için UI Automation, kurulum gerektirmeden.

Erişilebilirlik

Gerçek bir tablo olarak sunulan ızgara

sgcGrid içeriğini Microsoft UI Automation'a sütun başlıkları, satırlar ve hücrelerden oluşan bir tablo olarak sunar; bu, ekran okuyucuların (Narrator ve NVDA gibi) kullandığı API'dir. Yalnızca görünen satırlar oluşturulur ve satır ile sütun sayıları her zaman tamdır, bu yüzden bir milyon satırlık ızgara ek maliyet getirmez.

  • Odaktaki hücre, seçim, sıralama, filtreleme, gruplama ve ağaç satırları Grid, Table ve Selection kalıpları üzerinden sunulur
  • Ok tuşları, Home, End, Page Up ve Page Down odaktaki hücreyi taşır, Shift seçimi genişletir, Ctrl+Boşluk satırı veya hücreyi seçer ya da seçimi kaldırır, F2 veya Enter düzenler
  • Alt+Aşağı filtre açılır penceresini açar, Alt+Shift+Sol ve Alt+Shift+Sağ sütunu taşır, Ctrl+Shift+G odaktaki sütuna göre gruplar ve Ctrl+Shift+U bu gruplamayı kaldırır
  • Görünür bir odak halkası ve Windows yüksek karşıtlık temasında ızgara sistem renkleriyle çizilir

Erişilebilirlik her sürümde, ücretsiz Community sürümü dahil, varsayılan olarak açıktır: VCL'de Delphi 7'den Delphi 13'e kadar her Delphi ve C++Builder sürümünde, Windows'ta FireMonkey'de ve WinForms, WPF ve Avalonia üzerinde. Delphi ve C++Builder'da AccessibleName ve AccessibleDescription UI Automation'a sunulan adı ve açıklamayı belirler, .NET'te ise her çerçevenin standart erişilebilir adı ve yardım metni aynı işi yapar. Bkz. erişilebilirlik uygunluk raporları. Tablo kalıpları olmayan Avalonia'da her hücre sütununu ve konumunu adında ve yardım metninde taşır. Sütun genişlikleri yalnızca fareyle değiştirilir.

Yardım konusunu okuyun

sgcGrid iş başında

sgcUI paket demolarında sgcGrid: yerleşik simüle verilerle çevrimdışı çalışan eksiksiz uygulamalar.

Birkaç Milisaniyede 1080p Kare

sgcGrid QA performans kapısının son ölçülen ortalamaları: 12 sütun, 100.000 satır ve 45 görünür satırlı 1920 x 1080 bir kare, raster tuvalde 60 kez oluşturuldu. Kapı, Win64'te kare başına 16 ms'nin, Win32'de 25 ms'nin üzerinde başarısız olur.

ÖlçümSonuçKoşullar
Düz kare3,0 msWin32
Düz kare4,6 msWin64
Düz kare3,7 msLinux64
Yanıp sönme ve 3 biçim kuralı3,2 msWin32
Yanıp sönme ve 3 biçim kuralı6,8 msWin64
LiveTicker demosu, işçi iş parçacığı yazarSaniyede yaklaşık 1.000 güncelleme60 fps'de sıralı, yanıp sönen grid

Kaynak: bu değerleri belgeleyen yardım konusu.

sgcGrid ile Kimler Geliştirme Yapıyor

Alım satım ve piyasa verisi masaları

Yüzlerce fiyat her saniye değişirken bir kotasyon panosunun okunabilir kalması gerekir. Akış iş parçacıkları UpdateRow ile yazar ve arayüzü asla beklemez, değişimde yanıp sönme her hareketin yönünü gösterir ve kuyruk modu işlem günlüğünü en yeni dolumunda tutar. sgcGridWS köprüsü kotasyonları WebSocket, MQTT veya SSE'den okuyabilir.

  • Canlı güncellemeler
  • Değişimde yanıp sönme
  • Kuyruk modu
  • Canlı akışlar
LiveTicker demosunu çalıştırın

Büro ve iş kolu uygulamaları

Sipariş girişi, stok listeleri ve faturalama ekranları bir veritabanı üzerinde çalışır. Mevcut TDataSet'i bağlayın, kullanıcıların müşteriye veya aya göre gruplamasına, her grup satırında toplamlarla, değerleri doğrulamayla yerinde düzeltmesine izin verin ve muhasebenin grupları ve SUBTOTAL formülleri bozulmadan açtığı bir çalışma kitabı dışa aktarın.

  • DataSet bağlama
  • Gruplama ve özetler
  • Yerinde düzenleme
  • Excel dışa aktarma
DataSetGrid demosunu çalıştırın

İzleme, günlükler ve uyarılar

Operasyon ekranları hiç bitmeyen olay akışlarını gösterir. MaxRows günlüğü sınırlar, biçim kuralları hataları kırmızıya boyar ve sanal mod milyonlarca satırlık bir arşivi isteğe bağlı gezer. Bir Linux64 sunucuda oluşturucu, bir uyarı e-postası için aynı grid'i PNG veya SVG dosyasına yazar.

  • Biçim kuralları
  • MaxRows ve kuyruk modu
  • Sanal mod
  • Başsız PNG ve SVG
LiveFeed demosunu çalıştırın

Birkaç Satırda Canlı Bir Grid

Delphi, C++ Builder ve C#'ta aynı API: sütunlar ekleyin, satırları anahtara göre ekleyin ve daha sonra herhangi bir iş parçacığından güncelleyin.

Kodla bir VCL grid'i: türlendirilmiş sütunlar, anahtara göre eklenen satırlar ve herhangi bir iş parçacığından alan adıyla güncelleme.

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;

Yardım konusunu okuyun →

Oluşturulan sgcGrid başlık dosyalarıyla C++ Builder'da aynı grid.

#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))));
}

Yardım konusunu okuyun →

Yanıp sönen hücreler, negatif değişim kuralı ve koyu temayla bir WinForms grid'i.

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

Yardım konusunu okuyun →

sgcGrid Demolarını Çalıştırın

Delphi için 15 demo, üçü FireMonkey, C++ Builder için 11 demo ve WinForms, WPF ve Avalonia üzerinde .NET için 18 demo.

LiveTicker

LiveTicker

Bir işçi iş parçacığından UpdateRow ile saniyede yaklaşık 1.000 fiyat güncellemesi, sıralı bir görünüm, yanıp sönen hücreler ve negatif değişimler için bir biçim kuralı. VCL, FireMonkey, C++ Builder, WinForms, WPF ve Avalonia.

DataSetGrid

DataSetGrid

KeyField, AutoColumns ve LiveUpdates ile 200 kayıtlık bir TClientDataSet'e bağlı bir TsgcGridSource_DataSet, ayrıca JSON ve CSV dışa ve içe aktarma.

GroupAndSummary

GroupAndSummary

100.000 sipariş Bölge ve Kategoriye göre gruplanmış; grup paneli, Count, Sum ve Average özetleri, bir alt bilgi ve iki dondurulmuş sütunla. .NET bunu Grouping olarak adlandırır.

FilterAndFind

FilterAndFind

Huni açılır pencereleri, filtre satırı ve bulma paneliyle 100.000 satış satırı, ayrıca sütun seçici, en uygun genişlik ve bir dosyaya kaydedilip geri yüklenen düzen. VCL, FireMonkey, C++ Builder, WinForms, WPF ve Avalonia.

BandsAndCells

BandsAndCells

Instrument, Live data, Price ve Position bantları altında 2.000 enstrüman; sparkline, ilerleme ve görüntü hücreleri, çoklu satır seçimi ve bir Copy düğmesi. VCL, C++ Builder ve WinForms.

Yalnızca Kayıtlı Editing

Bir seçim listesi sütunu, Boşluk tuşuyla değiştirilen bir boolean sütun, negatif miktarları reddeden OnValidate, OnEditError ve bir OnEdited günlüğü, ayrıca sgcEditors'tan tarih, saat, spin, renk ve belirteç düzenleyicileri, OnCreateEditor ile bir TTrackBar, yapıştırma, geri alma ve yineleme.

DataSetEditing

Yalnızca Kayıtlı DataSetEditing

İki TClientDataSet içinde Products ve Categories; aynı kayıtlar üzerinde bir TDBNavigator ve iki TDBEdit: WriteBack, SyncCursor, bir lookup sütunu, ekleme, silme ve geri alma. VCL, C++ Builder ve WinForms (AddLookup içeren bir DataTable).

TreeAndDetail

Yalnızca Kayıtlı TreeAndDetail

Bir organizasyon şeması ağacı ve bir TsgcGridDataStore üzerinden doldurulan sipariş ayrıntı bandına sahip müşteriler.

Yalnızca Kayıtlı ExcelExport

SaveToXLSX ile kaydedilip hesap tablosu uygulamasında açılan gruplanmış bir grid ve bir ağaç grid'i, anahtar hattı ve özetler korunur.

GridAndChart

Bir dashboard'da bir grid karosu ve bir grafik karosu: bir TsgcChartDataSource_Table grid satırlarını çizer. sgcCharts ve sgcDashboard gerektirir.

Yalnızca Kayıtlı AskYourGrid

TsgcGridAI ve yapay zeka sorgu çubuğu, TsgcGridAIQuery köprüsünün yanında, ağ ve API anahtarı olmadan sade dille sorulan sorulardan 200 hisseyi filtreler, sıralar ve vurgular. sgcWebSockets gerektirir.

Yalnızca Kayıtlı LiveFeed

İşlem içi bir WebSocket sunucusu 50 sembollük JSON gruplarını yayınlar ve bir TsgcGridFeedSource_WebSocket bunları anahtara göre grid'e yazar. Delphi ve .NET.

Derlenmiş demolar

Her sgcUI ürününün çalıştırmaya hazır yürütülebilir dosyaları, kurulum gerektirmez.

sgcUI_bin.zip dosyasını indirin →

sgcGrid Hangi Sürümlerde Yer Alıyor

sgcGrid tek başına satılır, Standard'dan itibaren her sgcUI sürümünün parçasıdır ve All-Access paketinde yer alır.

sgcGrid tek paket

€199 / geliştirici, tam kaynak kodu, 1 yıl güncelleme.

sgcGrid satın alın → Fiyatlandırmayı görün →

sgcUI Standard

sgcGrid, sgcNavigation, sgcToolbar ve sgcEditors, €380 fiyatından başlayarak.

Standard sürümüne bakın →

sgcUI Professional

Standard artı sgcCharts, sgcDashboard ve sgcGauges, €529 fiyatından başlayarak.

Professional sürümüne bakın →

sgcUI Enterprise

Tüm 14 sgcUI ürünü, €699 fiyatından başlayarak.

Enterprise sürümüne bakın →

Ücretsiz Community sürümü NuGet'te esegece.sgcGrid.Community paketidir. Bir proje Community veya Kayıtlı paketlerden birine başvurur, ikisine birden değil.

ÖzellikCommunity (ücretsiz)Kayıtlı
Herhangi bir iş parçacığından canlı güncellemeler, değişimde yanıp sönme, kuyruk modu✓✓
Biçim kuralları ve temalar✓✓
Sıralama, filtreleme ve seçim✓✓
Gruplama, grup paneli ve özetler✓✓
Dondurulmuş sütunlar ve sütun yeniden boyutlandırma✓✓
Sanal mod✓✓
DataTable bağlama, JSON ve CSV✓✓
Başsız PNG ve SVG✓✓
Sütun filtreleri, filtre satırı ve bulma paneli✓✓
Sütun seçici, sütunları yeniden sıralama, en uygun genişlik ve düzenler✓✓
Bantlar, görüntü, ilerleme ve sparkline hücreleri, çoklu seçim✓✓
Tablonuza sorun: TsgcGridAI, yapay zeka sorgu çubuğu ve herhangi bir LLM sağlayıcısı✓✓
Yerinde düzenleme−✓
İki yönlü DataTable düzenleme, yapıştırma, geri alma ve yineleme, sgcEditors hücre düzenleyicileri−✓
Ağaç satırları ve ana ayrıntı−✓
Excel dışa aktarma−✓
Canlı akışlar, TsgcGridAIQuery ve sgcWebSockets yapay zeka sağlayıcısı (sgcGridWS ve sgcUICoreWS köprüleri)−✓

Desteklenen Framework'ler ve Platformlar

sgcGrid İçindeki Bileşenler

BileşenHedef
TsgcVCLGridDelphi ve C++ Builder, VCL (sgcGrid_VCL)
TsgcFMXGridXE6'dan itibaren Delphi FireMonkey, Windows, macOS, iOS ve Android'de (sgcGrid_FMX)
TsgcGridData, TsgcGridColumns, TsgcGridFormatRules, TsgcGridLineView, TsgcGridRendererFramework'ten bağımsız satır deposu, sütunlar, biçim kuralları ve oluşturucu, Linux64'te de
TsgcGridAIFramework'ten bağımsız doğal dil sorgu motoru, her sürümde ve Linux64'te de (sgcGrid_AI)
TsgcVCLAIQueryBar, TsgcFMXAIQueryBar, TsgcUIAIEventProvidersgcUICore'un yapay zeka sorgu çubuğu ve yapay zeka sağlayıcısı, her sürümde
TsgcUIAIChatProvidersgcUICoreWS köprüsü: yapay zeka sağlayıcısı olarak sgcWebSockets'in TsgcAIChat bileşeni (Kayıtlı sürüm)
TsgcGridSource_DataSet, TsgcGridDataStoreTDataSet bağlama ve ana ayrıntı bantlarının satır deposu
TsgcGridFeedSource_WebSocket, TsgcGridFeedSource_MQTT, TsgcGridFeedSource_SSE, TsgcGridAIQuerysgcWebSockets ile sgcGridWS köprüsü (Kayıtlı sürüm)
TsgcWinFormsGrid, TsgcWpfGrid, TsgcAvaloniaGrid.NET, WinForms, WPF ve Avalonia
TsgcGridAI, TsgcWinFormsAIQueryBar, TsgcWpfAIQueryBar, TsgcAvaloniaAIQueryBar.NET, WinForms, WPF ve Avalonia için doğal dil sorguları ve yapay zeka sorgu çubuğu
HedefBileşenPlatformlar
Delphi 7'den 13'e, VCLTsgcVCLGridWin32 ve XE2'den itibaren Win64
Delphi XE6'dan 13'e, FireMonkeyTsgcFMXGridWindows, macOS, iOS ve Android
C++ Builder 2007'den 13'eTsgcVCLGrid, TsgcFMXGridOluşturulan .hpp başlık dosyaları ve statik kütüphaneler
Delphi 10.2'den 13'e, framework'ten bağımsızModel, biçimlendirme, oluşturucu, JSON ve CSVLinux64, örneğin bir sunucuda grid görüntüleri oluşturmak için
.NET Framework 4.7.2, .NET 8, 9 ve 10TsgcWinFormsGrid, WPF ve Avalonia grid'leriWinForms, WPF, Avalonia, başsız PNG ve SVG

Sık Sorulan Sorular

Evet. Grid verisinin AppendRow, UpdateRow, UpdateCell ve DeleteRow işlemleri iş parçacığı güvenlidir, bu yüzden bir işçi iş parçacığı satırları doğrudan anahtara göre yazar. Grid, ana iş parçacığında saniyede en fazla MaxFPS kez yeniden çizilir. Bkz. Canlı güncellemeler.

Yalnızca görünür satırlar boyanır, bu yüzden bir karenin maliyeti satır sayısına değil pencereye bağlıdır. QA kapısı, 100.000 satırlık bir grid'in 1080p karesini Win32'de 3,0 ms, Win64'te 4,6 ms olarak ölçer. Başka bir yerde bulunan veriler için sanal mod hiç satır saklamaz ve değerleri görünüme kaydıkça ister. Bkz. Performans.

Evet. TsgcGridSource_DataSet bir grid'i herhangi bir TDataSet'ten doldurur, sütunları AutoColumns ile oluşturur ve LiveUpdates ile veri kümesinin her Append, Edit ve Delete işlemini izler. Bir KeyField ile değişen satırlar yeniden yüklenmek yerine yerinde güncellenir. .NET'te aynı kaynak bir DataTable okur. Bkz. DataSet bağlama.

Evet. TsgcVCLGrid sıradan bir VCL denetimidir, bu yüzden bir formda mevcut bir TStringGrid veya TDBGrid'in yanında durabilir. Bir TDBGrid ekranı veri kümesini korur ve bir TsgcGridSource_DataSet ekler; bir TStringGrid ekranı satırlarını AppendRow ve UpdateRow ile anahtara göre yazar. Mevcut formların otomatik dönüştürülmesi yoktur.

Yerinde düzenleme, iki yönlü DataTable düzenleme, yapıştırma, geri alma ve yineleme, sgcEditors hücre düzenleyicileri, ağaç satırları, ana ayrıntı satırları, Excel dışa aktarma ve sgcGridWS köprüsü. Sıralama, filtreleme, filtre satırı ve bulma paneli, gruplama, özetler, dondurulmuş sütunlar, sütun seçici, düzenler, bantlar, görüntü, ilerleme ve sparkline hücreleri, çoklu seçim, biçim kuralları, sanal mod, JSON ve CSV, başsız çıktı ve TsgcGridAI ile Tablonuza sorun her sürümde bulunur. Bkz. Sürümler.

Evet. GroupIndent ve GroupPanelHeight gibi boyutlar cihazdan bağımsız piksellerdir ve VCL grid'i bunları monitörünün DPI değerine göre ölçeklendirir, Delphi 10.3'ten itibaren monitör başına. Theme utLight ile utDark arasında geçiş yapar, AccentColor seçim ve yanıp sönme vurgusunu ayarlar.

sgcGrid Yardımı

3,000+Geliştirici
20+Yıl
761+Bileşen
30+API Entegrasyonu
5Platform
30 Günlük Para İade GarantisiMemnun kalmadınız mı? Satın alımdan sonraki 30 gün içinde tam para iadesi talep edin. İade politikasına bakın

Bugün sgcGrid'i Deneyin

sgcUI denemesi, sgcGrid'i tüm özellikleri açık olarak, diğer 13 sgcUI ürününü ve tüm demo projelerini içerir.