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

sgcToolbar, Delphi, C++ Builder & .NET için Araç Çubuğu ve Durum Çubuğu

Her arayüzde aynı görünen iki denetimle bir masaüstü uygulamasının çatısını kurun. Düğmeler, geçiş düğmeleri, radyo grupları ve açılır menüler içeren bir araç çubuğu ile bir çalışan iş parçacığının doğrudan güncelleyebildiği ilerleme ve gösterge panelli gerçek bir durum çubuğu.

VCL, FireMonkey, WinForms, WPF, AvaloniaDurum çubuğu herhangi bir iş parçacığından güncellenirÜcretsiz .NET Community sürümüsgcUI Standard içinde yer alır
Bir düğme, geçiş düğmesi, ayırıcı, açılır menü, etiket ve boşluk için açıklama etiketleri bulunan 2x EditorShell araç çubuğu

Eksiksiz Bir Komut ve Durum Çubuğu

Her masaüstü uygulamasının ihtiyaç duyduğu iki çubuk için on iki özellik: radyo gruplarından çalışan iş parçacığından canlı ilerlemeye kadar.

Komutlar

Bir komut çubuğunun ihtiyaç duyduğu her öğe; gruplama, menüler ve taşma denetim tarafından yönetilir.

Tek denetimde her araç çubuğu öğe türü

Komutlar

Tek denetimde her araç çubuğu öğe türü

Gerçek bir uygulama araç çubuğu; düz düğmeleri, basılı kalan düğmeleri, menülü düğmeleri, ayırıcıları ve biraz metni bir arada barındırır. sgcToolbar ile bunların her biri aynı koleksiyonun bir öğesidir ve Kind nasıl çizileceğine ve nasıl tepki vereceğine karar verir. Öğeler soldan sağa, aralarında Spacing ile dizilir; bir boşluk öğesi kalan genişliği alır, böylece hiçbir yerleşim kodu yazmadan Yardım'ı veya bir kullanıcı adını sağ kenara itebilirsiniz. Sabit bir boyut gerektiğinde Width öğeyi sabitler. İpuçları, devre dışı durumlar ve üzerine gelme izleme her tür için çizilir.

  • Komutlar için tikButton, tikToggle ve tikDropdown
  • tikSeparator ince bir dikey çizgi çizer
  • tikSpacer sonraki öğeleri sağa iter
  • tikLabel çubuğun içinde metin gösterir
Yardım konusunu okuyun
Kodsuz radyo grupları

Komutlar

Kodsuz radyo grupları

Metin hizalama, görünüm modları ve çizim araçları klasik birden çok seçenekten biri durumlarıdır. Birkaç geçiş öğesine aynı GroupIndex değerini verin, bir radyo grubu oluştururlar: birinde Down ayarlamak, tıklamayla ya da koddan, diğerlerini bırakır; zaten basılı olan öğeye tıklamak onu basılı bırakır, böylece bir seçim her zaman seçili kalır. GroupIndex değeri 0 olan bir geçiş düğmesi, Kalın veya Sözcük kaydır gibi basit bir aç/kapat anahtarıdır. Tıklama, OnItemClick tetiklenmeden önce Down değerini çevirir, böylece işleyiciniz yeni durumu okur. Grubu tutarlı tutmak için olay bağlamaya gerek yoktur.

  • 0'ın üzerindeki GroupIndex bir radyo grubu oluşturur
  • Down durumu koddan okur veya ayarlar
  • Basılı durum vurgu tonuyla çizilir
  • Bağlı bir eylem, Checked ile Down değerini yönetir
Yardım konusunu okuyun

Komutlar

Kendi popup menünüzden açılır menüler

Yakınlaştırma düzeyleri, dışa aktarma biçimleri ve son dosyalar, on düğme daha yerine bir düğmenin altındaki bir menüye aittir. Bir tikDropdown öğesi başlığından sonra küçük bir ok çizer ve DropdownMenu'ye atadığınız popup menüyü düğmenin hemen altında gösterir: VCL ve FireMonkey'de bir TPopupMenu, WinForms'ta bir ContextMenuStrip. OnItemClick ve öğenin OnClick olayı menü açılmadan önce tetiklenir, böylece girdilerini önce doldurabilir veya işaretleyebilirsiniz. Menü serbest bırakılırsa çubuk referansı sizin için temizler. Tek tıklama hedefi, tek menü ve komutlar çoğalsa bile kısa kalan bir araç çubuğu.

  • DropdownMenu framework'ünüzün popup menüsünü alır
  • Ok, başlıktan sonra çizilir
  • Menüyü OnItemClick içinde doldurun veya işaretleyin
  • Taşma menüsünden de çalışır
Yardım konusunu okuyun

Komutlar Yalnızca Kayıtlı

Sığmayan öğeler bir taşma menüsüne geçer

Kullanıcılar pencereleri yeniden boyutlandırır ve son düğmelerini kırpan bir araç çubuğu ihtiyaç duydukları komutları gizler. Öğeler sığmadığında sgcToolbar sonuncuları bir taşma listesine taşır ve sağ uca çift ok düğmesi çizer. Ona basmak, gizlenen her öğe için bir girdiyle çalışma zamanında oluşturulan OverflowMenu'yü gösterir ve bir girdi seçmek tıklamayla birebir aynı davranır: geçiş düğmesi çevrilir, OnItemClick tetiklenir ve açılır menü menüsünü gösterir. Model neyin gizlendiğini size bildirir. Pencere yeniden büyüdüğünde öğeler kendiliğinden çubuğa döner.

  • OverflowMenu çalışma zamanında sizin için oluşturulur
  • Öğe başına HasOverflow, OverflowCount ve InOverflow
  • ItemAtPos taşma düğmesine yapılan tıklamayı bildirir
  • SGC_TOOLBAR_ADVANCED altında derlenir

Community: sığmayan öğeler kırpılır, taşma düğmesi yoktur.

Yardım konusunu okuyun

Komutlar Yalnızca Kayıtlı

TAction'larınızı yeniden kullanın

Komutlarınız zaten bir TActionList içinde yaşıyorsa araç çubuğu onları çoğaltmamalıdır. Bir öğeyi Action özelliği üzerinden herhangi bir VCL veya FireMonkey TAction'a bağlayın; eylemin Caption, Enabled, Visible, Hint, ImageIndex ve Checked değerlerini izler. Öğenin bir OnClick işleyicisi yoksa tıklama, eylemi çubuk ActionComponent olacak şekilde çalıştırır. Çubuklar boşta InitiateAction çağırır, böylece devre dışı bir eylem ek kod olmadan düğmesini de devre dışı bırakır. .NET'te öğede ICommand için Command ve CommandParameter vardır. Tek bir TActionList araç çubuğunu, ana menüyü ve gezinti çubuğunu birlikte yönetebilir.

  • Action bir öğeyi herhangi bir TBasicAction'a bağlar
  • Eylemin Checked değeri bir geçiş düğmesinin Down değerini yönetir
  • Eylemlerin OnUpdate olayı boşta çalışır
  • .NET: Command ve CommandParameter

Community: eylem yerine öğenin OnClick veya çubuğun OnItemClick olayını işleyin.

Yardım konusunu okuyun

Durum çubuğu

Kendi yerleşimini yapan, ilerlemeyi ve durumu gösteren ve herhangi bir iş parçacığından güncelleme kabul eden bir durum çubuğu.

Kendi yerleşimini yapan durum panelleri

Durum çubuğu

Kendi yerleşimini yapan durum panelleri

Satır ve sütun, bir dosya adı, kaydetme durumu ve ana mesaj, pencerenin alt kenarı için yarışır. TsgcVCLStatusBar, Panels öğelerini soldan sağa üç geçişte yerleştirir: sabit paneller Width değerlerini alır, AutoSize panelleri metinlerinin genişliğini alır ve Spring panelleri kalanı paylaşır. Ana mesaj için bir spring paneli kullanın, çubuk her pencere boyutunda düzenli kalır. İnce bir çizgi panelleri ayırır ve OnPanelClick hangisine tıklandığını bildirir. Paneller bir koleksiyondur, bu yüzden tasarım zamanında Nesne Denetçisi'nde ekleyip düzenleyebilirsiniz.

  • Alignment ve Hint ile spkText panelleri
  • Spring panelleri boş genişliği paylaşır
  • AutoSize panelleri metnine uyar
  • OnPanelClick bir panele yapılan tıklamayı bildirir
Yardım konusunu okuyun
İlerleme çubukları ve durum göstergeleri

Durum çubuğu

İlerleme çubukları ve durum göstergeleri

Uzun işlemlerin bir ilerleme çubuğuna, canlı bağlantıların da her şeyin yolunda olup olmadığını söyleyen bir ışığa ihtiyacı vardır. Bir panel, vurgu renginde Progress yüzdesine kadar dolan bir ilerleme çubuğu olabilir ya da bir gösterge: renkli bir nokta ve ardından panelin metni. IndicatorState kapalı, tamam, uyarı veya hata durumunu seçer; yeşil, kehribar ve kırmızı açık ve koyu tema için ayrı ayrı ayarlanmıştır. Bir veritabanı bağlantısının, bir veri akışının veya bir arka plan eşitlemesinin durumuna uygundur. Progress veya IndicatorState değerini ayarlayın, panel kendini yeniden çizer; yazılacak çizim kodu yoktur.

  • 0'dan 100'e Progress ile spkProgress
  • IndicatorState ile spkIndicator
  • sisOff, sisOk, sisWarning, sisError
  • GetIndicatorColor tema için rengi döndürür
Yardım konusunu okuyun

Durum çubuğu

Durum çubuğunu bir çalışan iş parçacığından güncelleyin

İndirmeler, veri akışları ve uzun hesaplamalar çalışan iş parçacıklarında yürür ve her durum güncellemesini ana iş parçacığına geri iletmek sıkıcıdır ve yanlış yapılması kolaydır. SetPanelText, SetProgress ve SetIndicator, Synchronize veya Queue olmadan herhangi bir iş parçacığından çağrılabilir. Model değerleri bir kilitle korur ve OnChange'i yalnızca bir değer gerçekten değiştiğinde tetikler, bu yüzden aynı değeri tekrarlamak hiçbir şeye mal olmaz. VCL çubuğu ardından penceresine bir mesaj gönderir, FireMonkey çubuğu ise yeniden çizimi kuyruğa alır; böylece arayüze ana iş parçacığı dışında asla dokunulmaz. Bir paneli aşan iş parçacığı da güvenlidir.

  • Herhangi bir iş parçacığından SetPanelText, SetProgress, SetIndicator
  • Kodunuzda Synchronize veya Queue yok
  • Değişmeyen değerler hiçbir şeye mal olmaz
  • Aralık dışı bir dizin yok sayılır, hiçbir zaman hata oluşturmaz
Yardım konusunu okuyun

Görünüm, klavye ve çıktı

sgcUI'nin geri kalanıyla uyumlu simgeler, temalar ve klavye desteği; ayrıca dokümantasyonunuz için çubukların resimleri.

Simgeler veya glif harfleri, başlıklar isteğe bağlı

Görünüm, klavye ve çıktı

Simgeler veya glif harfleri, başlıklar isteğe bağlı

Tıklanabilir her öğenin 16 mantıksal piksellik bir simge yuvası vardır. Çubuğun Images listesindeki ImageIndex resmini veya öğenin resmi yoksa Glyph değerini gösterir: hiç resim listesi gerektirmeyen bir harf veya kısa bir simge. Yalnızca simgeli kompakt bir çubuk için ShowCaptions değerini kapatın; başlık ipucuna dönüşür, böylece hiçbir şey kaybolmaz. VCL resim listeleri bir kez düz ARGB biçimine dönüştürülür, alfa geri kazanılır ve liste değişene kadar önbellekte tutulur; böylece maskeli ve 32 bit listelerin ikisi de doğru görünür. Simgeler hâlâ tasarlanırken ikisini serbestçe karıştırın.

  • Resim listeleri için Images ve ImageIndex
  • Resim yokken Glyph
  • Yalnızca simgeler için ShowCaptions False
  • Delphi XE8'den itibaren FireMonkey resim listeleri
  • Arapça ve İbranice için sağdan sola: öğeler sağdan akar ve MirrorGlyph geri, ileri, geri al ve yinele gibi yönlü simgeleri çevirir
Yardım konusunu okuyun
Açık, koyu ve vurgu renginiz

Görünüm, klavye ve çıktı

Açık, koyu ve vurgu renginiz

Çubuklar renklerini, paketin her ürününün kullandığı sgcUICore tema token'larından alır; böylece bir sgcGrid'in üstündeki ve bir sgcNavigation çubuğunun yanındaki araç çubuğu tek bir uygulama gibi görünür. Theme utLight veya utDark seçer, AccentColor ise odak halkasının, geçiş düğmelerinin basılı tonunun ve ilerleme çubuklarının kullandığı vurguyu değiştirir. Üzerine gelme, basılı, aşağıda, odaklı ve devre dışı durumlar sizin için türetilir. Her çubuğun kendi Theme değeri vardır, bu yüzden hem araç çubuğunda hem durum çubuğunda ayarlayın. Çalışma zamanında geçiş her iki çubuğu aynı anda yeniden çizer.

  • Theme: utDefault (varsayılan, uygulama temasını izler), utLight veya utDark
  • AccentColor $AARRGGBB olarak, 0 tema vurgusunu korur
  • Gösterge renkleri temayı izler
  • Koyu mod anahtarı için çalışma zamanında geçiş yapın
Yardım konusunu okuyun

Görünüm, klavye ve çıktı

Klavye erişimi ve çalışan bir boyut tutamacı

Kullanıcılarınız gerektirdiğinde araç çubuğu sekme sırasına katılabilir: TabStop'u ayarlayın, odaklanan düğme bir odak halkası gösterir, Sol ve Sağ etkin düğmeler arasında hareket eder, Home ve End atlar, Enter veya Boşluk etkinleştirir. Varsayılan olarak kapalıdır, böylece araç çubuğu altındaki düzenleyiciden odağı asla çalmaz. ClickItem bir öğeyi koddan, örneğin bir form kısayolundan etkinleştirir. Durum çubuğunda SizeGrip tutamaç noktalarını çizer ve VCL'de bunları sürüklemek yeniden boyutlandırılabilir bir formu boyutlandırır. FireMonkey'de tutamaç çizilir ancak formu yeniden boyutlandırmaz, bu yüzden form yeniden boyutlandırılamıyorsa orada SizeGrip'i kapatın.

  • VCL'de TabStop, FireMonkey'de CanFocus
  • ClickItem bir öğeyi koddan çalıştırır
  • Durum çubuğunda SizeGrip ve GripRect
  • Tutamaç formu yalnızca yeniden boyutlandırılabilirse boyutlandırır
Yardım konusunu okuyun

Görünüm, klavye ve çıktı

Her iki çubuğu pencere olmadan çizin

Bir kılavuzdaki araç çubuğu ekran görüntüleri her sürümle eskir. sgcToolbar_Render içindeki çizici, bir TsgcToolbarModel'i veya TsgcStatusBarModel'i pencere, VCL veya FireMonkey olmadan çizer; böylece bir konsol programı, bir test veya bir web sunucusu aynı çubukları resim olarak üretebilir. SaveToPNG ve SaveToSVG mantıksal piksel olarak bir boyut ve bir ölçek alır; bu yüzden ölçek 2'de 560 x 44, net bir 1120 x 88 resim verir. Birimler Linux64 dahil her platformda derlenir. Kendi resimlerinizi OnGetImage ile verin, resim çalışan uygulamayla eşleşir.

  • SaveToPNG bir PNG dosyası veya akışı yazar
  • SaveToSVG aynı çubuğu SVG olarak yazar
  • TsgcToolbarModel ve TsgcStatusBarModel üzerinde çalışır
  • OnGetImage arayüzsüz çıktıya simgeleri sağlar
Yardım konusunu okuyun

sgcToolbar iş başında

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

sgcToolbar ile Kimler Geliştirme Yapıyor

Doküman ve kod düzenleyicileri

Bir düzenleyicinin Kalın ve İtalik geçiş düğmelerine, bir hizalama radyo grubuna, bir Yakınlaştırma menüsüne ve satırı, sütunu ve kaydetme durumunu gösteren bir durum çubuğuna ihtiyacı vardır. sgcToolbar bunların hepsini tek bir öğe koleksiyonu ve tek bir panel koleksiyonuyla, zaten sahip olduğunuz TActionList'e bağlı olarak karşılar. Pencere daraldığında taşma menüsü her komutu erişilebilir tutar. EditorShell demosu tam olarak bunu bir TMemo çevresinde kurar.

  • Öğe türleri
  • Radyo grupları
  • Taşma menüsü
EditorShell demosunu çalıştırın

Uzun süren araçlar ve canlı veri akışları

İçe aktarma araçları, eşitleme istemcileri ve izleme uygulamaları işlerini arka plan iş parçacıklarında yapar ve bunu bildirmek zorundadır. SetProgress, SetIndicator ve SetPanelText çağrılarını doğrudan çalışan iş parçacığından yapın; durum çubuğu kodunuzda Synchronize olmadan ana iş parçacığında yeniden çizilir. Gösterge, işin durumuna göre yeşil, kehribar veya kırmızı olur. LiveStatus demosu tam olarak bunu yapan bir indirmeyi simüle eder.

  • İş parçacığı güvenli güncellemeler
  • İlerleme panelleri
  • Göstergeler
LiveStatus demosunu çalıştırın

Her platformda tek komut çubuğu

Windows, macOS ve mobilde yayınlanan bir FireMonkey uygulaması her yerde aynı araç çubuğunu hak eder. TsgcFMXToolbar ve TsgcFMXStatusBar, VCL çubuklarıyla aynı öğelere, panellere ve olaylara sahiptir; WinForms, WPF ve Avalonia için .NET çubukları da aynı adları izler. EditorShellFMX, düzenleyici kabuğunun FireMonkey sürümüdür; aynı öğeler, taşma menüsü ve durum panelleriyle.

  • FireMonkey çubukları
  • Temalar
  • Durum panelleri
EditorShellFMX demosunu çalıştırın

Birkaç Satırda Bir Araç Çubuğu ve Durum Çubuğu

Delphi, C++ Builder ve C#'ta aynı API: bir geçiş düğmesi, bir radyo grubu, bir açılır menü ve tıklama işleyicisinden güncellenen bir durum çubuğu.

procedure TMainForm.CreateBars;
var
  oItem: TsgcToolbarItem;
  oPanel: TsgcStatusBarPanel;
begin
  // a toolbar with a toggle, a Left/Center radio group and a dropdown
  FToolbar := TsgcVCLToolbar.Create(Self);
  FToolbar.Parent := Self;
  FToolbar.ShowCaptions := True;
  FToolbar.ShowHint := True;
  FToolbar.OnItemClick := ToolbarItemClick;
  oItem := FToolbar.Items.Add;
  oItem.Caption := 'Save';
  oItem.Glyph := 'S';
  oItem.Hint := 'Save the document';
  FToolbar.Items.Add.Kind := tikSeparator;
  oItem := FToolbar.Items.Add;
  oItem.Kind := tikToggle;
  oItem.Caption := 'Bold';
  oItem.Glyph := 'B';
  oItem := FToolbar.Items.Add;
  oItem.Kind := tikToggle;
  oItem.GroupIndex := 1;
  oItem.Down := True;
  oItem.Caption := 'Left';
  oItem := FToolbar.Items.Add;
  oItem.Kind := tikToggle;
  oItem.GroupIndex := 1;
  oItem.Caption := 'Center';
  oItem := FToolbar.Items.Add;
  oItem.Kind := tikDropdown;
  oItem.Caption := 'Zoom';
  oItem.DropdownMenu := FZoomMenu;
  // a status bar: a spring text panel, a progress bar and an indicator
  FStatusBar := TsgcVCLStatusBar.Create(Self);
  FStatusBar.Parent := Self;
  oPanel := FStatusBar.Panels.Add;
  oPanel.Spring := True;
  oPanel.Text := 'Ready';
  FStatusBar.Panels.Add.Kind := spkProgress;
  oPanel := FStatusBar.Panels.Add;
  oPanel.Kind := spkIndicator;
  oPanel.AutoSize := True;
  oPanel.Text := 'Saved';
  oPanel.IndicatorState := sisOk;
end;

procedure TMainForm.ToolbarItemClick(Sender: TObject; aItem: TsgcToolbarItem);
begin
  // the setters are thread safe, a worker thread can call them directly
  FStatusBar.SetPanelText(0, aItem.Caption + ' clicked');
  FStatusBar.SetProgress(1, 60);
  FStatusBar.SetIndicator(2, sisWarning);
end;
#include <vcl.h>
#include <Vcl.Menus.hpp>
#include "sgcUICore_Theme.hpp"
#include "sgcToolbar_Model.hpp"
#include "sgcToolbar_VCL.hpp"

class TBarHandler : public TObject
{
public:
  TsgcVCLStatusBar *StatusBar;
  void __fastcall ItemClick(TObject *Sender, TsgcToolbarItem *aItem);
};

void __fastcall TBarHandler::ItemClick(TObject *Sender, TsgcToolbarItem *aItem)
{
  // the setters are thread safe, a worker thread can call them directly
  StatusBar->SetPanelText(0, aItem->Caption + " clicked");
  StatusBar->SetProgress(1, 60);
  StatusBar->SetIndicator(2, sisWarning);
}

void __fastcall CreateBars(TForm *Form, TBarHandler *Handler, TPopupMenu *ZoomMenu)
{
  // a toolbar with a toggle, a Left/Center radio group and a dropdown
  TsgcVCLToolbar *Toolbar = new TsgcVCLToolbar(Form);
  Toolbar->Parent = Form;
  Toolbar->ShowCaptions = true;
  Toolbar->OnItemClick = Handler->ItemClick;
  TsgcToolbarItem *Item = Toolbar->Items->Add();
  Item->Caption = "Save";
  Item->Glyph = "S";
  Item->Hint = "Save the document";
  Toolbar->Items->Add()->Kind = tikSeparator;
  Item = Toolbar->Items->Add();
  Item->Kind = tikToggle;
  Item->Caption = "Bold";
  Item = Toolbar->Items->Add();
  Item->Kind = tikToggle;
  Item->GroupIndex = 1;
  Item->Down = true;
  Item->Caption = "Left";
  Item = Toolbar->Items->Add();
  Item->Kind = tikToggle;
  Item->GroupIndex = 1;
  Item->Caption = "Center";
  Item = Toolbar->Items->Add();
  Item->Kind = tikDropdown;
  Item->Caption = "Zoom";
  Item->DropdownMenu = ZoomMenu;
  // a status bar: a spring text panel, a progress bar and an indicator
  TsgcVCLStatusBar *StatusBar = new TsgcVCLStatusBar(Form);
  StatusBar->Parent = Form;
  TsgcStatusBarPanel *Panel = StatusBar->Panels->Add();
  Panel->Spring = true;
  Panel->Text = "Ready";
  StatusBar->Panels->Add()->Kind = spkProgress;
  Panel = StatusBar->Panels->Add();
  Panel->Kind = spkIndicator;
  Panel->AutoSize = true;
  Panel->Text = "Saved";
  Panel->IndicatorState = sisOk;
  Handler->StatusBar = StatusBar;
}
using System;
using System.Windows.Forms;
using esegece.sgcToolbar;

internal class MainForm : Form
{
    private readonly TsgcWinFormsToolbar Toolbar = new TsgcWinFormsToolbar();
    private readonly TsgcWinFormsStatusBar StatusBar = new TsgcWinFormsStatusBar();

    public MainForm()
    {
        // a toolbar with a toggle, a Left/Center radio group and a dropdown
        Toolbar.ShowCaptions = true;
        Toolbar.OnItemClick = ToolbarItemClick;
        TsgcToolbarItem oItem = Toolbar.Items.Add();
        oItem.Caption = "Save";
        oItem.Glyph = "S";
        oItem.Hint = "Save the document";
        Toolbar.Items.Add().Kind = TsgcToolbarItemKind.tikSeparator;
        oItem = Toolbar.Items.Add();
        oItem.Kind = TsgcToolbarItemKind.tikToggle;
        oItem.Caption = "Bold";
        oItem = Toolbar.Items.Add();
        oItem.Kind = TsgcToolbarItemKind.tikToggle;
        oItem.GroupIndex = 1;
        oItem.Down = true;
        oItem.Caption = "Left";
        oItem = Toolbar.Items.Add();
        oItem.Kind = TsgcToolbarItemKind.tikToggle;
        oItem.GroupIndex = 1;
        oItem.Caption = "Center";
        ContextMenuStrip oZoom = new ContextMenuStrip();
        oZoom.Items.Add("100%");
        oZoom.Items.Add("200%");
        oItem = Toolbar.Items.Add();
        oItem.Kind = TsgcToolbarItemKind.tikDropdown;
        oItem.Caption = "Zoom";
        oItem.DropdownMenu = oZoom;
        // a status bar: a spring text panel, a progress bar and an indicator
        TsgcStatusBarPanel oPanel = StatusBar.Panels.Add();
        oPanel.Spring = true;
        oPanel.Text = "Ready";
        StatusBar.Panels.Add().Kind = TsgcStatusPanelKind.spkProgress;
        oPanel = StatusBar.Panels.Add();
        oPanel.Kind = TsgcStatusPanelKind.spkIndicator;
        oPanel.AutoSize = true;
        oPanel.Text = "Saved";
        oPanel.IndicatorState = TsgcStatusIndicatorState.sisOk;
        Controls.Add(Toolbar);
        Controls.Add(StatusBar);
    }

    private void ToolbarItemClick(object sender, TsgcToolbarItem aItem)
    {
        // the setters are thread safe, a worker thread can call them directly
        StatusBar.SetPanelText(0, aItem.Caption + " clicked");
        StatusBar.SetProgress(1, 60);
        StatusBar.SetIndicator(2, TsgcStatusIndicatorState.sisWarning);
    }
}
dotnet add package esegece.sgcToolbar.WinForms

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

EditorShell ve LiveStatus demoları VCL ve C++ Builder için, Delphi için ayrıca bir FireMonkey sürümüyle birlikte gelir. .NET sürümünde ise WinForms, WPF ve Avalonia projeleri olarak sunulur.

EditorShell

Yalnızca Kayıtlı EditorShell

Geçiş düğmeleri, Sol, Orta ve Sağ radyo grubu, bir Yakınlaştırma açılır menüsü, TActionList bağlantıları, taşma menüsü, satır ve sütun panelleri ve bir Koyu anahtarı olan bir TMemo düzenleyici kabuğu. Taşma ve eylemleri kullandığı için Kayıtlı veya Deneme sürümü gerekir.

LiveStatus

Bir çalışan iş parçacığı bir indirmeyi simüle eder ve bir metin panelini, bir ilerleme panelini ve yeşil, kehribar veya kırmızı olan bir göstergeyi besler; Başlat ve Durdur düğmeleri vardır. Community sürümüyle derlenir.

Yalnızca Kayıtlı EditorShellFMX

Yalnızca Delphi için, bir FireMonkey TMemo çevresinde TsgcFMXToolbar ve TsgcFMXStatusBar bulunan EditorShell demosu: aynı öğeler, eylem bağlantıları, taşma menüsü ve durum panelleri.

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 →

sgcToolbar Hangi Sürümlerde Yer Alıyor

sgcToolbar, Standard'dan başlayarak her sgcUI sürümünde bulunur ve ayrıca tek başına da satılır. sgcToolbar ayrıca All-Access paketine dahildir.

sgcToolbar tek paket

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

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

sgcUI Standard

sgcToolbar, sgcGrid, sgcNavigation 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.sgcToolbar.Community) taşma menüsünü ve Eylem bağlantılarını içermez.

ÖzellikCommunity (ücretsiz)Kayıtlı
Her öğe türü, geçiş düğmeleri, radyo grupları ve açılır menüler✓✓
Metin, ilerleme ve gösterge panelleri✓✓
İş parçacığı güvenli durum güncellemeleri✓✓
Simgeler, glifler, temalar, klavye ve boyut tutamacı✓✓
Arayüzsüz PNG ve SVG çıktısı✓✓
Taşma menüsü−✓
Eylem bağlantıları (Delphi) ve Command (.NET)−✓

Desteklenen Framework'ler ve Platformlar

sgcToolbar'daki bileşenler

BileşenHedef
TsgcVCLToolbar, TsgcVCLStatusBarDelphi ve C++ Builder, VCL (sgcToolbar_VCL)
TsgcFMXToolbar, TsgcFMXStatusBarDelphi ve C++ Builder, FireMonkey (sgcToolbar_FMX)
TsgcToolbarItem, TsgcStatusBarPanel, TsgcToolbarModel, TsgcStatusBarModelFramework'ten bağımsız modeller (sgcToolbar_Model)
TsgcWinFormsToolbar, TsgcWinFormsStatusBar.NET, WinForms
TsgcWpfToolbar, TsgcWpfStatusBar.NET, WPF
TsgcAvaloniaToolbar, TsgcAvaloniaStatusBar.NET, Avalonia
HedefBileşenPlatformlar
Delphi 7'den 13'e, VCLTsgcVCLToolbar, TsgcVCLStatusBarWin32 ve Win64
Delphi XE6'dan 13'e, FireMonkeyTsgcFMXToolbar, TsgcFMXStatusBarWindows, macOS, iOS, Android ve Linux (FMXLinux)
C++ Builder 2007'den 13'eVCL ve FireMonkey çubuklarıOluşturulan .hpp başlık dosyaları ve statik kitaplıklar
Delphi 10.2'den 13'e, framework'ten bağımsızModeller ve arayüzsüz PNG ve SVG çiziciLinux64, örneğin bir sunucuda araç çubuğu çizmek için
.NET Framework 4.7.2, .NET 8, 9 ve 10TsgcWinFormsToolbar, WPF ve Avalonia çubuklarıWinForms, WPF ve Avalonia

Sık Sorulan Sorular

Evet. SetPanelText, SetProgress ve SetIndicator, Synchronize veya Queue olmadan herhangi bir iş parçacığından çağrılabilir. Model değerleri bir kilitle korur ve çubuk ana iş parçacığında yeniden çizilir. Diğer tüm özellikler ana iş parçacığından ayarlanır. Bkz. İş parçacığı güvenli güncellemeler.

Aynı işleri kapsar: üstte düğmeler, geçiş düğmeleri, açılır düğmeler, ayırıcılar ve etiketler, altta metin panelleri. Buna bir boşluk öğesi, ilerleme ve gösterge panelleri, iş parçacığı güvenli ayarlayıcılar, temalar ve arayüzsüz çıktı ekler. Mevcut TActionList ve TPopupMenu bileşenleriniz Action ve DropdownMenu üzerinden takılır.

Taşma menüsü ve öğelerin Eylem bağlantıları; .NET'te bunlar Command ve CommandParameter'dır. Community'de sığmayan öğeler kırpılır. İş parçacığı güvenli durum güncellemeleri, ilerleme ve gösterge panelleri ve arayüzsüz çıktı dahil diğer tüm özellikler Community'de vardır.

Evet. C++ Builder 2007'den 13'e aynı VCL ve FireMonkey çubuklarını oluşturulan başlık dosyaları ve kitaplıklar üzerinden kullanır; EditorShell ve LiveStatus demoları da C++ Builder projeleri olarak gelir. Bu sayfadaki kod sekmesi aynı araç çubuğunu Delphi, C++ Builder ve C#'ta gösterir.

Evet. Tüm boyutlar mantıksal piksellerin monitörün ölçeğiyle çarpımıdır ve simge yuvası 16 mantıksal pikseldir; bu yüzden düğmeler, glifler, ilerleme çubukları ve gösterge noktaları her DPI'da net kalır. FireMonkey, resimleri resim listesinden frame'in cihaz boyutunda alır.

Evet. TsgcToolbarModel ve TsgcStatusBarModel için SaveToSVG ve SaveToPNG, çubukları pencere olmadan, Delphi 10.2'den itibaren Linux64'te de çizer; böylece bir derleme adımı kılavuzunuzun resimlerini her sürüm için yeniden oluşturabilir. Ölçek parametresi yüksek DPI ekranlar ve baskı için net resimler verir.

sgcToolbar 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

sgcToolbar'ı Bugün Deneyin

sgcUI denemesi sgcToolbar'ı ve diğer tüm sgcUI ürünlerini içerir.