Delphi, C++ Builder & .NET Teil von sgcUI

sgcEditors, die modernen Eingabesteuerelemente für Delphi, C++ Builder & .NET

Fünfzehn Formulareingaben, die auf jedem Monitor gleich aussehen und sich wie native Edits verhalten: ein Kalender mit echten Buchungsregeln, Datums- und Zeitauswahl, ein Bereichsschieberegler, eine Farbauswahl, Chips, Sterne, eine Spin-Eingabe, Button-, Such-, Masken- und Währungs-Eingabe, ein mehrspaltiges Lookup und ein Memo, dazu ein Kippschalter für Einstellungen, eine IP-Adress-Eingabe, eine Zeitspannen-Eingabe, eine Schriftartauswahl, eine Checkbox-Liste und eine Dual-Listbox, ein NumPad und eine Bildschirmtastatur für Touch-Panels. Tippe ein Datum in deiner eigenen Sprache, prüfe das ganze Formular vor dem Speichern, wechsle mit einer Eigenschaft zum dunklen Theme und binde die Editoren an ein Dataset.

Fünfzehn Steuerelemente für VCL, FireMonkey, WinForms, WPF, AvaloniaFormularvalidierung in jeder EditionNative Texteingabe mit IME und ZwischenablageKostenlose .NET Community EditionEnthalten in sgcUI Standard
Gallery-Demo mit Monatskalender, Datums-, Zeit- und Datum-Zeit-Auswahl, Spin-Edit, Bewertung, Bereichsregler, Token-Edit und Farbauswahl

Eingaben, die deine Formulare verdienen

Sechzehn Funktionen, mit denen sich Datumswerte, Beträge, Codes, Auswahlen und Tags schnell eingeben lassen und kaum Fehler passieren.

Die Steuerelemente

Fünfzehn Eingaben, die die Felder echter Geschäftsformulare abdecken, jede verfügbar für VCL, FireMonkey und .NET.

Die Gallery-Demo mit den Steuerelementen von sgcEditors

Die Steuerelemente

Fünfzehn moderne Eingaben in einem Paket

Buchungsformulare, Einstellungsseiten und Filter verlangen immer wieder dieselben Eingaben: einen Kalender, eine Datums- oder Zeitauswahl, einen Schieberegler, eine Farbe, eine Liste von Tags, eine Sternebewertung, eine Zahl mit Einheiten, einen Code mit Maske, einen Preis, eine Auswahl aus einer langen Liste, ein Suchfeld und einen Kommentar. sgcEditors liefert dir alle fünfzehn als eine einheitliche Familie. Jedes Steuerelement gibt es für VCL und FireMonkey mit denselben veröffentlichten Eigenschaften und Ereignissen und für WinForms, WPF und Avalonia mit denselben Namen, sodass das, was du an einem Steuerelement lernst, für die anderen gilt. Sie teilen sich ein Theme, eine Akzentfarbe und ein Tastaturmodell. Ziehe sie von der Seite SGC Editors der Palette, und sie sehen beim ersten Start richtig aus.

  • TsgcVCLMonthCalendar, TsgcVCLDatePicker, TsgcVCLTimePicker, TsgcVCLDateTimePicker
  • TsgcVCLRangeSlider und TsgcVCLSpinEdit für Zahlen
  • TsgcVCLColorPicker, TsgcVCLTokenEdit, TsgcVCLRating
  • TsgcVCLButtonEdit, TsgcVCLSearchEdit, TsgcVCLMaskEdit, TsgcVCLCurrencyEdit, TsgcVCLLookupEdit, TsgcVCLMemo
  • Alle stammen von TsgcVCLCustomEditor ab
Hilfethema lesen
Ein Kalender, der echten Buchungsregeln folgt

Die Steuerelemente

Ein Kalender, der echten Buchungsregeln folgt

Ein Hotel, eine Praxis oder ein Verleihschalter akzeptiert nie einfach jedes Datum. Der Monatskalender wählt ein Datum oder, mit SelectionMode auf esmRange, einen Tagesbereich, und MaxRangeDays begrenzt, wie lang dieser Bereich sein darf. Tage außerhalb von MinDate und MaxDate, aufgeführte DisabledDates, DisabledWeekDays wie Wochenenden und jeder Tag, den dein OnIsDateDisabled-Handler ablehnt, werden durchgestrichen gezeichnet und lassen sich nicht wählen. ISO-8601-Kalenderwochen sowie die Monats-, Jahres- und Jahrzehntansicht helfen Anwendern, weit vorzuspringen. Derselbe Kalender steuert das Dropdown der Datumsauswahl, sodass die Regeln überall gelten, wo ein Datum gewählt wird.

  • SelectionMode: esmSingle oder esmRange
  • MinDate, MaxDate und MaxRangeDays
  • DisabledDates, DisabledWeekDays, OnIsDateDisabled
  • ShowWeekNumbers für ISO-Kalenderwochen
Hilfethema lesen
Preis- und Datumsbereiche mit zwei Reglern

Die Steuerelemente Nur Registered

Preis- und Datumsbereiche mit zwei Reglern

Filter für Preis, Gewicht oder Entfernung lassen sich am besten als Bereich auf einer Schiene lesen. Der Bereichsregler wählt einen Wert zwischen Min und Max mit einem Regler oder, in RangeMode, einen Bereich mit zwei Reglern, horizontal oder vertikal. Er zeichnet Skalenstriche, Beschriftungen und einen Tipp mit dem Wert über dem gezogenen Regler, und ein Klick auf die Schiene bewegt den nächstgelegenen Regler dorthin. Die Regler überkreuzen sich nie, Step rastet die Werte ein und MinRange hält einen Mindestabstand, sodass der Filter nie versehentlich leer werden kann. Werte und Beschriftungen folgen dem Locale des Steuerelements, einschließlich Dezimal- und Tausendertrennzeichen.

  • RangeMode mit Value und EndValue
  • Min, Max, Step und MinRange
  • TickInterval, ShowLabels, ShowValueTip
  • LabelFormat oder OnFormatLabel für Währungen

Community: Ein Regler wird gezeichnet und bearbeitet, EndValue wird beibehalten, aber nicht angezeigt.

Hilfethema lesen
Tags und Chips mit Autovervollständigung

Die Steuerelemente Nur Registered

Tags und Chips mit Autovervollständigung

Tags, Empfänger und Fähigkeiten sind Listen, keine einzelne Textzeile. Das Token-Edit zeichnet jeden Eintrag als Chip mit Löschschaltfläche, bricht die Chips um und scrollt, wenn sie nicht passen. Ein Trennzeichen, Enter, Tab oder der Fokusverlust macht aus dem getippten Text einen Chip, und das Einfügen von a, b, c ergibt drei. OnValidateToken normalisiert oder lehnt jeden Eintrag ab, und AllowDuplicates, CaseSensitive und MaxTokens legen die Regeln fest. In Registered-Builds schlägt eine Autovervollständigungsliste Einträge vor, während der Anwender tippt. AddToken, RemoveToken und Clear ändern die Liste per Code, wenn du einen Datensatz lädst oder speicherst.

  • Tokens enthält die Chips, Delimiters beendet einen
  • OnValidateToken und InvalidTokens prüfen jeden Eintrag
  • AutoCompleteItems und AutoCompleteMinChars für Vorschläge
  • OnTokenAdded und OnTokenRemoved melden Änderungen

Community: Chips, Validierung und Limits funktionieren, die Autovervollständigungsliste öffnet sich nie.

Hilfethema lesen

Die Steuerelemente Nur Registered

Beliebige Farben wählen, mit Alpha

Theme-Editoren, Diagrammeinstellungen und Etikettendesigner brauchen mehr als eine feste Palette. Die Farbauswahl stapelt ein Raster aus Farbfeldern, ein Sättigungs-und-Wert-Quadrat, eine Farbtonleiste, eine Alphaleiste und eine Zeile mit Vorschau und Hex-Edit, und Parts wählt, welche davon erscheinen. Das Hex-Edit akzeptiert #RGB, #RGBA, #RRGGBB und #RRGGBBAA. Die Auswahl hält den Farbton getrennt von der Farbe, sodass ein Grau seinen Farbton behält und das Quadrat beim Ziehen nie springt. Definiere deine Markenpalette als Farbfelder, und die Anwender haben die volle Auswahl trotzdem einen Klick entfernt.

  • Parts mit ecpSwatches, ecpHSV, ecpAlpha, ecpHex
  • Swatches und SwatchColumns für deine Palette
  • SelectedColor als ARGB-Wert
  • OnChangeComplete, wenn der Anwender die Maus loslässt

Community: nur Farbfelder und Hex, das HSV-Quadrat und die Alphaleiste werden nicht gezeichnet, und Alpha ist immer $FF.

Hilfethema lesen

Die Steuerelemente

Buttons, Suche und Notizen im gleichen Stil

Viele Felder brauchen einen Button neben dem Text: eine Datei suchen, einen Dialog öffnen, den Wert löschen. Die Button-Eingabe setzt Buttons zum Durchsuchen, Aufklappen, Suchen, Löschen, Plus, Minus, mit Text oder selbst gezeichnet auf beide Seiten eines nativen Edits, jeden mit eigener Tastenkombination, und Screenreader nennen jeden Button beim Namen und können ihn drücken. Die Such-Eingabe löst OnSearch nach einer Tipppause oder sofort mit Enter aus und bietet frühere Suchen in einem aufklappbaren Verlauf erneut an. Das Memo ist ein mehrzeiliger Editor mit Theme, einem Platzhalter, einem Zeichenzähler mit optionalem Limit und einer Höhe, die den Zeilen zwischen MinLines und MaxLines folgt.

  • TsgcVCLButtonEdit mit Buttons und OnButtonClick
  • TsgcVCLSearchEdit mit SearchDelay, History und OnSearch
  • TsgcVCLMemo mit ShowCounter, MaxLength, AutoHeight
Hilfethema lesen

Die Steuerelemente

Masken- und Währungseingabe, die du mit .NET teilen kannst

Telefonnummern, Postleitzahlen, Kontonummern und Preise brauchen ein festes Format. Die Masken-Eingabe nimmt eine Eingabemaske in der EditMask-Syntax von Delphi oder in der MaskedTextBox-Syntax von .NET, sodass sich eine Maske in einer Delphi- und in einer .NET-Anwendung gleich verhält: Die Literale bleiben fest, jede Position akzeptiert nur ihre Art von Zeichen, und Text liefert den Wert mit oder ohne die Literale. Die Währungs-Eingabe speichert einen exakten Currency-Wert, in .NET ein decimal, ohne Fließkomma. Sie zeigt das volle Währungsformat des Gebietsschemas, solange sie den Fokus nicht hat, und eine gruppierte Zahl mit dem Symbol oder dem ISO-Code, während der Benutzer tippt. MinValue, MaxValue und AllowNegative halten den Betrag im Bereich.

  • EditMask und MaskSyntax: emxDelphi oder emxDotNet
  • IsComplete, EditText und SaveLiterals
  • Value, Decimals, CurrencyCode, SymbolMode
  • PositivePattern und NegativePattern
Hilfethema lesen

Die Steuerelemente

Eine Zeile aus einer mehrspaltigen Liste wählen

Kunden, Produkte und Länder werden nach Namen gewählt, aber nach Schlüssel gespeichert. Die Lookup-Eingabe öffnet eine mehrspaltige Auswahlliste mit optionaler Kopfzeile und filtert sie, während der Benutzer tippt. Die Eingabe zeigt die Anzeigespalte, und KeyValue behält den Schlüssel, etwa einen Ländercode hinter einem Ländernamen. Die Zeilen kommen aus Items, eine Zeile pro Eintrag mit den durch | getrennten Zellen, oder aus OnGetItems für eine Suche auf einem Server, und OnNotInList entscheidet, was mit einem Text geschieht, der zu keiner Zeile passt. In .NET können die Zeilen auch aus jeder Auflistung über ItemsSource, DisplayMember und ValueMember kommen, unter WinForms, WPF und Avalonia.

  • Columns mit Title, Width und Alignment
  • KeyColumn, DisplayColumn und KeyValue
  • ShowHeader, MatchMode, DropDownRows
  • .NET: ItemsSource, SelectedValue in jeder Edition
Hilfethema lesen

Die Steuerelemente

Ein Kippschalter für Einstellungen und Optionen

Einstellungsseiten und Optionspanels schalten Funktionen ein und aus. Der Kippschalter ist die moderne Form der Checkbox: eine abgerundete Spur mit einem runden Schieber, der in den neuen Zustand gleitet, eine optionale Beschriftung auf jeder Seite und auf Wunsch der Text Ein und Aus in der Spur. Er ist selbst gezeichnet, übernimmt im eingeschalteten Zustand die Akzentfarbe des Themes und skaliert mit dem DPI-Wert. Eine Änderung durch den Benutzer läuft zuerst durch OnChanging, sodass eine Regel deines Formulars sie ablehnen kann, und OnChange läuft nach jeder Änderung, durch den Benutzer oder per Code.

  • TsgcVCLToggleSwitch und TsgcFMXToggleSwitch, in .NET TsgcWinFormsToggleSwitch, TsgcWpfToggleSwitch und TsgcAvaloniaToggleSwitch
  • Checked, Caption, CaptionPosition, ShowText mit OnText und OffText, ReadOnly und Animated
  • TrackOnColor, TrackOffColor und ThumbColor oder die Farben des Themes sowie SwitchWidth und SwitchHeight für die Größe der Spur
  • OnChanging bricht eine Änderung durch den Benutzer mit Allow ab, OnChange wird nach jeder Änderung ausgelöst, und Toggle ändert den Zustand wie der Benutzer
  • Klick, Ziehen des Schiebers, Leertaste, Links und Rechts, Formulare von rechts nach links und eine Checkbox mit dem Toggle-Pattern für Screenreader
  • In WPF und Avalonia ist Checked standardmäßig in beide Richtungen gebunden, und in WinForms löst es CheckedChanged für die Datenbindung aus

Der Kippschalter ist in jeder Edition enthalten, auch in Community.

Hilfethema lesen

Die Steuerelemente

Eine IP-Adress-Eingabe für IPv4 und IPv6

Netzwerkeinstellungen, Geräteeinrichtung und Firewall-Regeln verlangen Adressen. In IPv4 zeigt die IP-Adress-Eingabe vier Oktettfelder mit Punkttrennern und springt beim Tippen zum nächsten Feld, sodass eine Adresse so schnell einzugeben ist wie in einem einfachen Edit und immer wohlgeformt ist: Ein Wert über 255 wird begrenzt, und die leeren Felder werden zu 0, wenn der Fokus das Steuerelement verlässt. In IPv6 ist sie ein einzelnes Textfeld, das Hexziffern, Doppelpunkte und Punkte annimmt, den Text validiert und ihn beim Verlassen des Fokus in der kanonischen Form nach RFC 5952 schreibt, sodass aus 2001:DB8:0:0:0:0:2:1 der Text 2001:db8::2:1 wird.

  • TsgcVCLIPAddressEdit und TsgcFMXIPAddressEdit, in .NET TsgcWinFormsIPAddressEdit, TsgcWpfIPAddressEdit und TsgcAvaloniaIPAddressEdit
  • Mode wählt IPv4 oder IPv6, Address ist der Wert, und Octets liest oder setzt ein Feld einer IPv4-Adresse
  • IsValid sagt, ob die Adresse vollständig ist, und mit Required zeigt eine leere oder unvollständige Adresse den Fehlerrahmen des Themes
  • Ein Punkt oder eine dritte Ziffer springt zum nächsten Feld, die Rücktaste am Anfang eines Feldes geht zurück, Links und Rechts überqueren die Feldgrenzen, und eine eingefügte Adresse füllt alle Felder
  • OnChange wird nach jeder Änderung ausgelöst, Clear leert die Adresse, und Screenreader sehen ein Edit mit dem Value-Pattern
  • In WPF und Avalonia ist Address standardmäßig in beide Richtungen gebunden, und in WinForms löst es AddressChanged für die Datenbindung aus

Die IP-Adress-Eingabe ist in jeder Edition enthalten, auch in Community.

Hilfethema lesen

Die Steuerelemente

Eine Zeitspannen-Eingabe für Dauern

Ein Timeout, ein Intervall oder eine Laufzeit ist eine Dauer, keine Uhrzeit. Die Zeitspannen-Eingabe zeigt sie in Segmenten, Tagen, Stunden, Minuten, Sekunden und Millisekunden, und der Benutzer bearbeitet jeweils ein Segment durch Tippen, mit den Pfeiltasten, dem Mausrad oder den Spin-Buttons. Ein Schritt überträgt in das nächste Segment, sodass 59 Sekunden plus eins eine Minute ergeben, und das höchste angezeigte Segment ist nicht begrenzt, sodass ohne Tage 50 Stunden als 50:00:00 erscheinen.

  • TsgcVCLTimeSpanEdit und TsgcFMXTimeSpanEdit, in .NET TsgcWinFormsTimeSpanEdit, TsgcWpfTimeSpanEdit und TsgcAvaloniaTimeSpanEdit
  • Value in Millisekunden in Delphi und ein TimeSpan in .NET, mit den Teilen Days, Hours, Minutes, Seconds und Milliseconds
  • Segments wählt die angezeigten Segmente, und DisplayFormat schreibt den Wert als Uhr, 1.02:30:05.250, oder mit Einheiten, 1d 2h 30m 5s 250ms
  • MinValue und MaxValue begrenzen den Wert, AllowNegative erlaubt ein führendes Minus, und Increment und ShowButtons legen die Schrittweite und die Spin-Buttons fest
  • Hoch und Runter ändern das fokussierte Segment, Bild auf und Bild ab ändern es in Zehnerschritten, Links, Rechts und Tab wechseln zwischen den Segmenten, und Screenreader sehen einen Spinner mit dem RangeValue-Pattern in Sekunden
  • In WPF und Avalonia ist Value standardmäßig in beide Richtungen gebunden, und in WinForms löst es ValueChanged für die Datenbindung aus

Die Zeitspannen-Eingabe ist in jeder Edition enthalten, auch in Community.

Hilfethema lesen

Die Steuerelemente

Eine Schriftartauswahl mit Vorschau jeder Familie

Report-Designer, Etiketten-Editoren und Einstellungsseiten lassen den Benutzer eine Schriftart wählen. Die Schriftartauswahl ist ein Edit mit einer Dropdown-Schaltfläche, deren Liste jede Schriftfamilie in ihrer eigenen Schrift zeichnet. Tippen filtert die Familien, die zuletzt gewählten stehen oberhalb eines Trennstrichs zuerst, und ein Filter behält nur die Familien mit fester Zeichenbreite, für einen Code-Editor oder ein Terminal. Die Liste kommt von der Plattform, bis die Anwendung sie füllt.

  • TsgcVCLFontPicker und TsgcFMXFontPicker, in .NET TsgcWinFormsFontPicker, TsgcWpfFontPicker und TsgcAvaloniaFontPicker
  • FontName ist der Wert, Fonts die Familienliste, und RefreshFonts lädt sie neu, nachdem eine Schrift installiert wurde
  • ShowPreview zeichnet jeden Namen in seiner eigenen Schrift, und PreviewText fügt nach dem Namen einen Beispieltext hinzu
  • RecentCount und RecentFonts merken sich die zuletzt gewählten Familien, damit die Anwendung sie speichern und wieder laden kann
  • FontFilter behält die Familien mit fester Zeichenbreite, und Alt+Runter öffnet die Liste, Enter oder ein Klick wählt eine Familie und Escape schließt sie
  • Die Delphi-Schriftartauswahl zeichnet die Vorschau-Schriften unter Windows, in VCL und FireMonkey; auf den anderen FireMonkey-Plattformen werden die Namen in der Schrift des Themes aufgelistet
  • In WPF und Avalonia ist FontName standardmäßig in beide Richtungen gebunden

Die Schriftartauswahl ist in jeder Edition enthalten, auch in Community.

Hilfethema lesen

Die Steuerelemente

Eine Checkbox-Liste für lange Optionslisten

Die Spalten eines Grids, die Filter eines Reports oder die Module einer Lizenz sind lange Optionslisten. Die Checkbox-Liste ist eine scrollende Liste mit einer Checkbox in jeder Zeile, nicht angehakt, angehakt oder grau, und einem Aktiviert-Flag pro Eintrag. Eine optionale Kopfzeile Alle auswählen hakt jeden aktivierten Eintrag an oder ab, und ein optionales Filterfeld blendet die Zeilen aus, die den getippten Text nicht enthalten, ohne ihren Zustand zu ändern. Es werden nur die sichtbaren Zeilen gezeichnet, sodass eine Liste mit 10000 Einträgen schnell bleibt.

  • TsgcVCLCheckListBox und TsgcFMXCheckListBox, in .NET TsgcWinFormsCheckListBox, TsgcWpfCheckListBox und TsgcAvaloniaCheckListBox
  • Items mit Checked, State und ItemEnabled pro Eintrag, und AllowGrayed für den dritten Zustand
  • ShowCheckAll zeigt die Alle-auswählen-Zeile mit drei Zuständen und ShowFilter das Filterfeld
  • CheckAll, UncheckAll und CheckedCount, und OnClickCheck vor OnChange bei einer Änderung durch den Benutzer
  • Leertaste schaltet die fokussierte Zeile um, Strg+A hakt alle Einträge an, ein Buchstabe springt zum nächsten Eintrag, der damit beginnt, und Screenreader sehen Listeneinträge mit dem Toggle-Pattern
  • In .NET sind CheckedItems und CheckedIndices schreibgeschützte Listen für die Bindung, und das Ereignis ItemCheck kommt vor Change

Die Checkbox-Liste ist in jeder Edition enthalten, auch in Community.

Hilfethema lesen

Die Steuerelemente

Eine Dual-Listbox zum Auswählen und Ordnen

Wer die Spalten eines Reports, die Mitglieder einer Gruppe oder die Schritte eines Prozesses auswählt, verschiebt Einträge von einer Liste in eine andere. Die Dual-Listbox zeichnet die Liste Verfügbar links und die Liste Ausgewählt rechts, mit Schaltflächen dazwischen, die die markierten oder alle Zeilen verschieben, und Schaltflächen Auf und Ab an der äußeren Seite, die die Liste Ausgewählt umordnen. Ein Doppelklick oder Ziehen verschiebt einen Eintrag in die andere Liste, und Ziehen innerhalb der Liste Ausgewählt ordnet sie um.

  • TsgcVCLDualListBox und TsgcFMXDualListBox, in .NET TsgcWinFormsDualListBox, TsgcWpfDualListBox und TsgcAvaloniaDualListBox
  • AvailableItems und SelectedItems, AvailableCaption und SelectedCaption, ShowCaptions und ShowReorderButtons
  • SortAvailable fügt zurückverschobene Einträge sortiert ein, ShowFilter ergänzt über jeder Liste ein Filterfeld, und ReadOnly behält die Auswahl und lehnt die Verschiebungen ab
  • MoveToSelected, MoveAllToSelected, MoveToAvailable, MoveAllToAvailable, MoveUp und MoveDown tun, was die Schaltflächen tun
  • OnMoving kann einen Eintrag an seinem Platz halten, und OnChange wird einmal pro Vorgang ausgelöst
  • Klick, Strg+Klick, Umschalt+Klick und Strg+A markieren, Tab wechselt von einer Liste zur anderen, Strg+Rechts und Strg+Links verschieben, Strg+Hoch und Strg+Runter ordnen um, und die Ansicht wird in Formularen von rechts nach links gespiegelt
  • In WPF und Avalonia ist SelectedItems standardmäßig in beide Richtungen gebunden, und in WinForms löst es SelectedItemsChanged aus

Die Dual-Listbox ist in jeder Edition enthalten, auch in Community.

Hilfethema lesen

Tippen, Sprache und Daten

Schnelle Eingabe für Tastaturbenutzer, eine Prüfung jedes Feldes vor dem Speichern, die richtige Sprache für jeden Benutzer und eine direkte Verbindung zu deinen Datasets.

Tippen, Sprache und Daten

Echtes Tippen, nicht nur Klicken

Dateneingabekräfte tippen Datumsangaben, sie klicken sich nicht durch Kalender. Jedes Textfeld von sgcEditors ist ein echtes Edit-Steuerelement der Plattform, sodass IME-Eingabe für Japanisch, Chinesisch und Koreanisch, die Zwischenablage, Rückgängig, das Kontextmenü und Screenreader funktionieren. Das Parsen ist großzügig: Schrägstriche, Bindestriche, Punkte, Doppelpunkte, Kommas oder Leerzeichen trennen die Felder, Monats- und Tagesnamen des Locales werden verstanden, und zweistellige Jahre werden eingeordnet. Auf und Ab drehen das Segment unter dem Cursor, und nicht lesbarer Text löst OnParseError aus.

  • DisplayFormat mit den Segmenten d, m, y, h, n, s
  • OnParseError, um ungewöhnliche Eingaben anzunehmen oder abzulehnen
  • AllowEmpty und TextHint für optionale Felder
  • Das Spin-Edit akzeptiert . und , als Dezimaltrennzeichen
Hilfethema lesen

Tippen, Sprache und Daten

Ein NumPad für Touch-Panels

Ein Touch-Panel in der Fertigung hat keine Tastatur, und die Tastatur des Systems verdeckt den halben Bildschirm. Das NumPad gibt eine Zahl mit Tasten ein, die für einen Finger oder einen Handschuh groß genug sind. Lege ein angedocktes Pad auf das Formular, und es schreibt in das Steuerelement mit dem Fokus, oder hänge ein Dropdown-Pad an ein Steuerelement, und ein Tippen auf das Steuerelement öffnet das Pad darunter. Das Ziel braucht keine Änderung: Das Pad liest seinen Bereich und seine Dezimalstellen und schreibt den Wert als Benutzeränderung, sodass die Rundung, die Grenzen und OnChange des Ziels laufen, als hätte der Benutzer getippt.

  • TsgcVCLNumPad angedockt und TsgcVCLNumPadPopup als Dropdown, auch für FireMonkey und in .NET
  • Gibt Zahlen in das Spin-Edit, das Currency-Edit, ein Standard-Edit und die Knob- und Slider-Gauges von sgcGauges ein
  • Associate wählt das Ziel, oder das Pad folgt dem fokussierten Steuerelement
  • Eine Anzeige mit der getippten Zahl und eine Grenzzeile wie Min 0 Max 120

Das NumPad ist in jeder Edition enthalten, auch in Community. Es gehört zum sgcUI HMI-Paket für Bedienbilder.

Hilfethema lesen

Tippen, Sprache und Daten

Eine Bildschirmtastatur für Kioske und Touch-Screens

Ein Kiosk, ein Selbstbedienungsterminal oder ein Bedienpanel braucht neben Zahlen auch Namen, Codes und Notizen. Die Bildschirmtastatur ist eine vollständige Tastatur auf demselben Eingabeweg wie das NumPad. Lege sie angedockt auf das Formular, und sie schreibt in das Steuerelement mit dem Fokus, oder hänge eine Dropdown-Tastatur an, die sich unter einem Edit öffnet, wenn das Edit den Fokus bekommt. Die Tastatur nimmt nie den Fokus, sodass Cursor und Auswahl des Ziels bleiben, wo sie sind, und ein Standard-Edit, ein Memo und die sgcEditors-Steuerelemente brauchen keine Änderung.

  • TsgcVCLKeyboard angedockt und TsgcVCLKeyboardPopup als Dropdown, auch für FireMonkey und in .NET für WinForms, WPF und Avalonia
  • Associate wählt das Ziel, oder die Tastatur folgt dem Fokus. AutoPopup, AutoPopupAll, PopupPosition und CloseOnEnter steuern das Dropdown
  • Seiten für Buchstaben, Symbole und Zahlen, mit Umschalt-, Feststell- und AltGr-Taste sowie Tottasten für Buchstaben mit Akzent
  • Zehn eingebaute Belegungen (en-US, en-GB, es-ES, fr-FR, de-DE, it-IT, pt-BR, nl-NL, pl-PL und tr-TR), eigene Belegungen mit sgcKeyboardRegisterLayout und eine Belegungstaste, die durch Layouts schaltet
  • OnKeyText ändert oder bricht den Text ab, bevor er geschrieben wird, und OnEnterKey läuft nach der Eingabetaste
  • Themes, Formulare von rechts nach links und Tasten, die Screenreader ansagen

Die Bildschirmtastatur ist in jeder Edition enthalten, auch in Community. Sie gehört zum sgcUI HMI-Paket für Bedienbilder und Kioske.

Hilfethema lesen
Jedes Steuerelement spricht die Sprache des Anwenders

Tippen, Sprache und Daten

Jedes Steuerelement spricht die Sprache des Anwenders

Internationale Teams und mehrsprachige Produkte brauchen Datumsangaben, die für jeden Anwender natürlich lesbar sind. Jedes Steuerelement hat seine eigenen FormatSettings, aus dem Anwender-Locale gefüllt und zur Laufzeit änderbar, sodass zwei Steuerelemente auf einem Formular sogar zwei Locales nutzen können. Kalender und Auswahlen übernehmen daraus Tages- und Monatsnamen, Datums- und Zeitformate, AM- und PM-Zeichenfolgen und Trennzeichen. FirstDayOfWeek und WeekNumbering folgen dem Locale oder deiner Wahl, und Zahlen nutzen die richtigen Dezimal- und Tausendertrennzeichen. Einheiten, Hinweise und barrierefreie Namen bleiben deine eigenen Eigenschaften, du übersetzt sie also mit dem Rest des Formulars.

  • FormatSettings pro Steuerelement
  • FirstDayOfWeek: efdLocale oder erzwungen efdMonday
  • WeekNumbering: standardmäßig ewnISO8601
  • TsgcEditorLocale für Headless-Modelle
  • Rechts nach links für Arabisch und Hebräisch: Spin-, Dropdown- und Löschen-Schaltflächen wechseln die Seite, Schieberegler, Bewertungen und der Kalender laufen von rechts, und das Eingabefeld wird von rechts nach links gelesen
Hilfethema lesen
Datensensitive Versionen für deine Formulare

Tippen, Sprache und Daten Nur Registered

Datensensitive Versionen für deine Formulare

Die meisten Delphi-Geschäftsformulare sitzen auf einem TDataSet, und jeden Editor von Hand zu verdrahten ist repetitiv. Zehn datensensitive Steuerelemente binden sich über DataSource und DataField direkt an ein Feld: eine Datumsauswahl, eine Zeitauswahl, eine Spin-Eingabe, eine Bewertung, ein Bereichsschieberegler, dessen zweiter Griff EndDataField bindet, eine Button-Eingabe, eine Masken-Eingabe, die die EditMask ihres Feldes übernimmt, eine Währungs-Eingabe, ein Memo und eine Lookup-Eingabe, die ihre mehrspaltige Liste über ListSource, KeyField und ListField aus einem zweiten Dataset füllt, wie TDBLookupComboBox. Null-Felder erscheinen leer, wenn AllowEmpty aktiv ist, und ein Pflichtfeld meldet einen leeren Wert an den Validator. Sie binden über TsgcEditorFieldLink, das nur die DB-Unit verwendet, sodass die FireMonkey-Versionen kein LiveBindings brauchen. In .NET binden die WinForms-Editoren ein Feld über DataSource, DataMember und DataField mit einem BindingSource, einer DataTable, einer DataView oder einer List, und die Werteigenschaften von WPF und Avalonia binden in beide Richtungen. Ziehe sie auf ein vorhandenes Formular, und die Dataset-Logik, die du schon hast, funktioniert unverändert weiter.

  • TsgcVCLDBDatePicker, TsgcVCLDBTimePicker, TsgcVCLDBSpinEdit
  • TsgcVCLDBRating und TsgcVCLDBRangeSlider
  • TsgcVCLDBButtonEdit, TsgcVCLDBMaskEdit, TsgcVCLDBCurrencyEdit, TsgcVCLDBMemo, TsgcVCLDBLookupEdit
  • DataSource, DataField, EndDataField; Lookup-Listen über ListSource, KeyField, ListField
  • WinForms: DataSource, DataMember, DataField; WPF und Avalonia: Werteigenschaften binden in beide Richtungen

In den .NET-Community-Paketen haben die WinForms-Editoren kein DataSource, DataMember und DataField; die Bindung von WPF und Avalonia sowie das ItemsSource der Lookup-Eingabe funktionieren in beiden Editionen.

Hilfethema lesen

Tippen, Sprache und Daten

Das ganze Formular vor dem Speichern prüfen

Ein Formular ist erst fertig, wenn jedes Feld stimmt. Der Validator von sgcUICore prüft die Steuerelemente eines Formulars gegen Regeln: Pflichtfeld, Bereich, Länge, regulärer Ausdruck, E-Mail, Vergleich mit einem anderen Feld und dein eigener Code. Er findet die Steuerelemente auf dieselbe Weise wie Smart Paste und prüft deshalb die sgcEditors-Steuerelemente und die Standard-Edits, Memos, Kombinationsfelder, Kontrollkästchen und Auswahlfelder gleichermaßen, unter VCL, FireMonkey, WinForms, WPF und Avalonia. Die Masken-Eingabe meldet einen unvollständigen Wert und die Lookup-Eingabe einen Text, der nicht in der Liste steht, ganz ohne Regel. Fehler erscheinen als Rahmen in der Fehlerfarbe des Themes, als Symbol mit der Meldung als Tooltip und als optionale Zusammenfassungsliste, und Screenreader lesen die Meldung zusammen mit dem Feld vor. In .NET zeigt der Validator auch die Fehler deiner Datenschicht an: IDataErrorInfo und INotifyDataErrorInfo unter WinForms und WPF, die Datenvalidierungsfehler unter Avalonia.

  • TsgcVCLValidator, TsgcFMXValidator, TsgcWinFormsValidator, TsgcWpfValidator, TsgcAvaloniaValidator
  • Regeln uvrRequired, uvrRange, uvrLength, uvrRegex, uvrEmail, uvrCompare, uvrCustom
  • Trigger: standardmäßig uvtExit, außerdem uvtChange oder uvtManual; Validate vor dem Speichern
  • TsgcVCLValidationSummary listet die Fehler auf und fokussiert das Feld per Klick

In jeder Edition, auch in Community. Die regulären Ausdrücke treffen unter Delphi 7 bis 13 und unter .NET dieselben Texte.

Hilfethema lesen

Tippen, Sprache und Daten

Ein Formular anordnen oder aus den eigenen Daten erzeugen

Das Layout-Steuerelement ordnet die Steuerelemente eines Formulars an, sgcEditors und Standard-Steuerelemente gleichermaßen, in Gruppen, Gruppen mit Registerkarten und Spalten, mit auf eine Breite ausgerichteten Beschriftungen, Teilern, die der Benutzer ziehen kann, und Rechts-nach-links-Layouts, und SaveLayout sichert die Anordnung als JSON. Das Datenformular baut darauf auf. Richte es auf ein TDataSet oder binde ein Objekt deiner eigenen Klasse, und es erzeugt pro Feld ein sgcEditors-Steuerelement, die Validierungsregeln jedes Feldes, eine Zusammenfassung der Fehler und einen Navigator zum Blättern, Hinzufügen, Bearbeiten, Löschen und Speichern von Datensätzen. Smart Paste füllt den ganzen Datensatz aus einem eingefügten Text, etwa einer E-Mail-Signatur oder einem Adressblock, und markiert die Felder, die es ausgefüllt hat. Unter .NET nehmen die Datenformulare für WinForms, WPF und Avalonia eine DataTable, eine Liste oder ein Objekt entgegen.

  • TsgcVCLLayoutControl, TsgcFMXLayoutControl; SaveLayout und LoadLayout
  • TsgcVCLDataForm, TsgcFMXDataForm, TsgcWinFormsDataForm, TsgcWpfDataForm, TsgcAvaloniaDataForm
  • Fields: Beschriftung, Art, Pflichtfeld, Grenzen, Gruppe, Registerkarte und Reihenfolge jedes Feldes; BindObject für eine Klasse
  • SmartPasteFromClipboard, SmartPasteUndo und eine Smart-Paste-Schaltfläche im Navigator

Das Layout-Steuerelement ist in jeder Edition enthalten, auch in Community; Delphi Community hat kein Design-Time-Paket für sgcEditors, daher wird es dort im Code erzeugt. Das Datenformular, seine Validierungsregeln und sein Smart Paste gibt es nur in der Edition Registered.

Hilfethema lesen

Tastatur, DPI und Themes

Die Details, die Prüfer kontrollieren: keine Maus nötig, scharf auf jedem Monitor und ein Aussehen, das zu deiner Anwendung passt.

Scharf auf jedem Monitor

Tastatur, DPI und Themes

Scharf auf jedem Monitor

Laptops mit 150 Prozent neben externen Monitoren mit 100 Prozent sind heute normal, und unscharfe Eingaben wirken billig. sgcEditors ordnet jedes Steuerelement in logischen Pixeln bei 96 DPI an und zeichnet es in der Skalierung des Bildschirms, ohne dass du in deinem Code etwas tun musst. Wechselt ein VCL-Formular auf einen Monitor mit anderer DPI, skalieren das innere Edit und seine Schrift mit dem Steuerelement, und ein Dropdown wird mit der DPI des Monitors gezeichnet, auf dem es sich öffnet. FireMonkey-Rasterbilder folgen der Skalierung der Szene für Retina und Android.

  • Layout in logischen Pixeln, gezeichnet in der Bildschirmskalierung
  • Innere Edits skalieren sich bei WM_DPICHANGED neu
  • Dropdowns nutzen die DPI ihres eigenen Monitors
  • SaveToPNG nimmt eine Skalierung für scharfe Bilder
Hilfethema lesen
Tastatur- und Screenreader-freundlich

Tastatur, DPI und Themes

Tastatur- und Screenreader-freundlich

Keine Funktion von sgcEditors braucht eine Maus. Die gezeichneten Steuerelemente nehmen den Fokus selbst an, und die Textsteuerelemente leiten ihn an ihr inneres Edit weiter, und ein fokussiertes Steuerelement zeichnet einen 2 Pixel breiten Fokusring in der Akzentfarbe. Im Kalender bewegen die Pfeile um einen Tag oder eine Woche und überspringen deaktivierte Tage, Bild auf und Bild ab bewegen um einen Monat, und Umschalt erweitert einen Bereich. In den Auswahlen öffnet F4 oder Alt+Ab das Dropdown, und Esc stellt den Wert wieder her. Das Spin-Edit schaltet mit Auf, Ab, Bild auf und Bild ab.

  • F4 oder Alt+Ab öffnet jedes Dropdown
  • Strg+Auf zoomt den Kalender auf Jahre und Jahrzehnte hinaus
  • Increment und LargeIncrement für das Spin-Edit
  • Native Edits halten Screenreader funktionsfähig
Hilfethema lesen
Hell und dunkel mit einer Eigenschaft

Tastatur, DPI und Themes

Hell und dunkel mit einer Eigenschaft

Formulare wirken fertig, wenn jede Eingabe demselben Theme folgt. Jedes Steuerelement hat ein Theme, eine AccentColor und einen TextStyle, und die Farben von Rahmen, Hover, Gedrückt-Zustand, Auswahl und Deaktiviert-Zustand werden daraus abgeleitet, sodass eine Eigenschaft das ganze Aussehen ändert. Die Tokens sind dieselben, die jedes sgcUI-Produkt nutzt, sodass Editoren in einer sgcDashboard-Kachel oder unter einer sgcToolbar ohne zusätzlichen Aufwand passen. Ein deaktiviertes Steuerelement blendet sich von selbst in den Hintergrund ein. Wechsle das Theme zur Laufzeit, und jeder Editor zeichnet sich neu, bereit für eine Dunkelmodus-Einstellung.

  • Theme: utDefault (Standard, folgt dem Anwendungs-Theme), utLight oder utDark
  • AccentColor für Auswahl, Regler, Füllung und Fokusring
  • TextStyle für Größe, Fett und Farbe
  • Dieselben Theme-Tokens wie die gesamte sgcUI-Suite
Hilfethema lesen

sgcEditors in Aktion erleben

sgcEditors in den sgcUI-Suite-Demos: vollständige Anwendungen, die offline mit integrierten Simulationsdaten laufen.

Wer mit sgcEditors baut

Buchungs- und Reservierungsformulare

Ein Buchungsformular braucht einen Aufenthaltsbereich, der geschlossene Tage berücksichtigt, eine Gästezahl, eine Ankunftszeit und vielleicht eine Bewertung des letzten Besuchs. Der Monatskalender erzwingt MinDate, MaxRangeDays und deaktivierte Tage, das Spin-Edit zählt Gäste, die Zeitauswahl akzeptiert getippte Zeiten und die Bewertung sammelt Feedback, alles in einem Theme. Die Demo BookingForm baut aus sieben Editoren eine Hotelbuchung mit Live-Zusammenfassung.

  • Kalenderbereiche
  • Spin-Edit
  • Bewertung
Demo BookingForm ausführen

Dateneingabe an TDataSet

Branchenanwendungen bearbeiten den ganzen Tag Datensätze. Die zehn datensensitiven Editoren binden sich über DataSource und DataField an ein TDataSet-Feld, der Bereichsregler bindet beide Enden, und Null-Felder erscheinen leer. Zusammen mit echter Tastatureingabe und großzügigem Parsen tippen Bediener Werte schnell, und das Dataset erhält saubere Daten. Die Demo DataAware setzt die zehn Editoren auf ein TClientDataSet neben ein TDBGrid und einen TDBNavigator.

  • Datensensitive Editoren
  • Texteingabe
  • Tastatur
Demo DataAware ausführen

Internationale Planungs-Apps

Planungswerkzeuge, die in mehreren Ländern genutzt werden, müssen jedem Anwender den richtigen Wochenbeginn, die richtigen Kalenderwochen und Monatsnamen zeigen. Jedes Steuerelement trägt seine eigenen FormatSettings, sodass ein Formular einen deutschen Kalender neben einem englischen zeigen kann, und FirstDayOfWeek und WeekNumbering folgen dem Locale oder deiner Regel. Die Demo Calendar wechselt zwischen Englisch, Deutsch, Spanisch, Französisch und Italienisch mit einem auf 14 Tage begrenzten Bereich.

  • Lokalisierung
  • Kalenderwochen
  • Deaktivierte Tage
Demo Calendar ausführen

Ein Feedback-Formular in wenigen Zeilen

Dieselbe API in Delphi, C++ Builder und C#: eine Bewertung, ein Bereichsregler und ein Token-Edit, die alle über OnChange melden.

uses
  SysUtils, Classes, Controls, Forms, StdCtrls,
  sgcEditors_Types, sgcEditors_VCL_Value, sgcEditors_VCL_Token;

type
  TFeedbackForm = class(TComponent)
  public
    Stars: TsgcVCLRating;
    Budget: TsgcVCLRangeSlider;
    Tags: TsgcVCLTokenEdit;
    Summary: TLabel;
    procedure EditorChange(Sender: TObject);
  end;

procedure TFeedbackForm.EditorChange(Sender: TObject);
begin
  // OnChange fires for every new value: clicked, dragged or typed
  Summary.Caption := Format('%.1f stars, budget %.0f to %.0f, %d tags',
    [Stars.Value, Budget.Value, Budget.EndValue, Tags.Tokens.Count]);
end;

function CreateFeedbackForm(aForm: TForm): TFeedbackForm;
begin
  Result := TFeedbackForm.Create(aForm);
  Result.Stars := TsgcVCLRating.Create(aForm);
  Result.Stars.Parent := aForm;
  Result.Stars.SetBounds(16, 16, 200, 32);
  Result.Stars.Glyph := ergHeart;
  Result.Stars.Precision := erpHalf;
  Result.Stars.Value := 3.5;
  Result.Stars.OnChange := Result.EditorChange;
  Result.Budget := TsgcVCLRangeSlider.Create(aForm);
  Result.Budget.Parent := aForm;
  Result.Budget.SetBounds(16, 60, 320, 48);
  Result.Budget.Max := 500;
  Result.Budget.Step := 10;
  Result.Budget.RangeMode := True;
  Result.Budget.Value := 80;
  Result.Budget.EndValue := 240;
  Result.Budget.ShowLabels := True;
  Result.Budget.OnChange := Result.EditorChange;
  Result.Tags := TsgcVCLTokenEdit.Create(aForm);
  Result.Tags.Parent := aForm;
  Result.Tags.SetBounds(16, 120, 320, 64);
  Result.Tags.TextHint := 'Add a tag';
  Result.Tags.AutoCompleteItems.CommaText := 'Breakfast,Parking,Pool';
  Result.Tags.AddToken('Breakfast');
  Result.Tags.OnChange := Result.EditorChange;
  Result.Summary := TLabel.Create(aForm);
  Result.Summary.Parent := aForm;
  Result.Summary.SetBounds(16, 196, 320, 20);
  Result.EditorChange(nil);
end;
#include <vcl.h>
#include "sgcEditors_Types.hpp"
#include "sgcEditors_VCL_Value.hpp"
#include "sgcEditors_VCL_Token.hpp"

class TFeedbackHandler : public TObject
{
public:
  TsgcVCLRating *Stars;
  TsgcVCLRangeSlider *Budget;
  TsgcVCLTokenEdit *Tags;
  TLabel *Summary;
  void __fastcall EditorChange(TObject *Sender);
};

void __fastcall TFeedbackHandler::EditorChange(TObject *Sender)
{
  // OnChange fires for every new value: clicked, dragged or typed
  Summary->Caption = FormatFloat("0.0", Stars->Value) + " stars, budget " +
    FormatFloat("0", Budget->Value) + " to " + FormatFloat("0", Budget->EndValue) +
    ", " + IntToStr(Tags->Tokens->Count) + " tags";
}

TFeedbackHandler * __fastcall CreateFeedbackForm(TForm *Form)
{
  TFeedbackHandler *H = new TFeedbackHandler();
  H->Stars = new TsgcVCLRating(Form);
  H->Stars->Parent = Form;
  H->Stars->SetBounds(16, 16, 200, 32);
  H->Stars->Glyph = ergHeart;
  H->Stars->Precision = erpHalf;
  H->Stars->Value = 3.5;
  H->Stars->OnChange = H->EditorChange;
  H->Budget = new TsgcVCLRangeSlider(Form);
  H->Budget->Parent = Form;
  H->Budget->SetBounds(16, 60, 320, 48);
  H->Budget->Max = 500;
  H->Budget->Step = 10;
  H->Budget->RangeMode = true;
  H->Budget->Value = 80;
  H->Budget->EndValue = 240;
  H->Budget->ShowLabels = true;
  H->Budget->OnChange = H->EditorChange;
  H->Tags = new TsgcVCLTokenEdit(Form);
  H->Tags->Parent = Form;
  H->Tags->SetBounds(16, 120, 320, 64);
  H->Tags->TextHint = "Add a tag";
  H->Tags->AutoCompleteItems->CommaText = "Breakfast,Parking,Pool";
  H->Tags->AddToken("Breakfast");
  H->Tags->OnChange = H->EditorChange;
  H->Summary = new TLabel(Form);
  H->Summary->Parent = Form;
  H->Summary->SetBounds(16, 196, 320, 20);
  H->EditorChange(NULL);
  return H;
}
using System;
using System.Drawing;
using System.Windows.Forms;
using esegece.sgcUICore;
using esegece.sgcEditors;

public class FeedbackForm : Form
{
    private readonly TsgcWinFormsRating stars;
    private readonly TsgcWinFormsRangeSlider budget;
    private readonly TsgcWinFormsTokenEdit tags;
    private readonly Label summary = new Label { Location = new Point(12, 196), Size = new Size(320, 20) };

    public FeedbackForm()
    {
        ClientSize = new Size(360, 230);
        stars = new TsgcWinFormsRating { Location = new Point(12, 12), Size = new Size(200, 32) };
        stars.Glyph = TsgcEditorRatingGlyph.ergHeart;
        stars.Precision = TsgcEditorRatingPrecision.erpHalf;
        stars.Value = 3.5;

        budget = new TsgcWinFormsRangeSlider { Location = new Point(12, 56), Size = new Size(320, 48) };
        budget.BeginInit();
        budget.Max = 500;
        budget.Step = 10;
        budget.RangeMode = true;
        budget.Value = 80;
        budget.EndValue = 240;
        budget.EndInit();
        budget.ShowLabels = true;

        tags = new TsgcWinFormsTokenEdit { Location = new Point(12, 116), Size = new Size(320, 64) };
        tags.TextHint = "Add a tag";
        foreach (string s in new[] { "Breakfast", "Parking", "Pool" })
            tags.AutoCompleteItems.Add(s);
        tags.Tokens.Add("Breakfast");

        // OnChange fires for every new value: clicked, dragged or typed
        foreach (TsgcWinFormsCustomEditor e in new TsgcWinFormsCustomEditor[] { stars, budget, tags })
        {
            e.OnChange = s => ShowSummary();
            Controls.Add(e);
        }
        Controls.Add(summary);
        ShowSummary();
    }

    private void ShowSummary() =>
        summary.Text = $"{stars.Value:0.0} stars, budget {budget.Value:0} to {budget.EndValue:0}, {tags.Tokens.Count} tags";
}
dotnet add package esegece.sgcEditors.WinForms

Ein Bestellformular validieren

Eine Lookup-Eingabe, eine Masken-Eingabe und eine Währungs-Eingabe, geprüft vom Validator von sgcUICore. Rufe Validate auf, wenn der Benutzer speichert: Er zeigt jeden Fehler an und fokussiert das erste ungültige Feld.

function CreateOrderValidator(aForm: TForm; aCountry: TsgcVCLLookupEdit;
  aPhone: TsgcVCLMaskEdit; aPrice: TsgcVCLCurrencyEdit): TsgcVCLValidator;
var
  oRule: TsgcVCLValidationRule;
begin
  // cells: key | name, the edit shows the name and KeyValue keeps the code
  aCountry.Items.Add('ES|Spain');
  aCountry.Items.Add('FR|France');
  aCountry.Items.Add('DE|Germany');
  aCountry.KeyColumn := 0;
  aCountry.DisplayColumn := 1;
  // Delphi EditMask syntax: the user types the digits, the literals stay
  aPhone.EditMask := '(000) 000-0000;0;_';
  aPrice.CurrencyCode := 'EUR';

  Result := TsgcVCLValidator.Create(aForm);
  Result.Container := aForm;
  Result.Display := [uvdBorder, uvdIcon];
  oRule := TsgcVCLValidationRule(Result.Rules.Add);
  oRule.Control := aCountry;
  oRule.Kind := uvrRequired;
  oRule := TsgcVCLValidationRule(Result.Rules.Add);
  oRule.Control := aPrice;
  oRule.Kind := uvrRange;
  oRule.MinValue := '1';
  oRule.MaxValue := '10000';
end;
public class Country
{
    public string Code { get; set; }
    public string Name { get; set; }
}

public class OrderForm : Form
{
    private readonly TsgcWinFormsLookupEdit country = new TsgcWinFormsLookupEdit();
    private readonly TsgcWinFormsMaskEdit phone = new TsgcWinFormsMaskEdit();
    private readonly TsgcWinFormsCurrencyEdit price = new TsgcWinFormsCurrencyEdit();
    private readonly TsgcWinFormsValidator validator = new TsgcWinFormsValidator();

    public OrderForm()
    {
        country.SetBounds(16, 16, 240, 28);
        phone.SetBounds(16, 56, 240, 28);
        price.SetBounds(16, 96, 240, 28);
        Controls.AddRange(new Control[] { country, phone, price });

        // any list: the edit shows Name, SelectedValue returns Code
        country.ItemsSource = new List<Country>
        {
            new Country { Code = "ES", Name = "Spain" },
            new Country { Code = "FR", Name = "France" }
        };
        country.DisplayMember = "Name";
        country.ValueMember = "Code";
        phone.EditMask = "(000) 000-0000"; // MaskedTextBox syntax by default
        price.Decimals = 2;

        validator.Container = this;
        validator.Rules.Add(new TsgcWinFormsValidationRule
            { Control = country, Kind = TsgcUIValidationRuleKind.uvrRequired });
        validator.Rules.Add(new TsgcWinFormsValidationRule
            { Control = price, Kind = TsgcUIValidationRuleKind.uvrRange, MinValue = "1" });
    }

    public bool Save() => validator.Validate();

Ein Kundenformular aus einem Dataset erzeugen

Ein TsgcVCLDataForm auf einem geöffneten Dataset erstellt die Editoren, die Validierungsregeln und den Navigator. Setze Art und Gruppe eines Feldes, baue neu auf, und die Smart-Paste-Schaltfläche des Navigators füllt den Datensatz aus der Zwischenablage.

uses
  Forms, Controls, DB,
  sgcUICore_AI, sgcEditors_DataForm, sgcEditors_VCL_DataForm;

function CreateCustomerForm(aOwner: TForm; aSource: TDataSource;
  aProvider: TsgcUIAIProvider): TsgcVCLDataForm;
var
  oField: TsgcDataFormField;
begin
  Result := TsgcVCLDataForm.Create(aOwner);
  Result.Parent := aOwner;
  Result.Align := alClient;
  // an open dataset: one field, one editor and one rule per TField
  Result.DataSource := aSource;
  oField := Result.Fields.FindField('EMAIL');
  oField.Kind := edfEmail;
  oField.Required := True;
  oField.Group := 'Contact';
  Result.Fields.FindField('PHONE').Group := 'Contact';
  Result.RebuildEditors;
  // the Smart Paste button of the navigator fills every field from the
  // clipboard; without a provider a local parser reads "Name: value" lines
  Result.Provider := aProvider;
end;

Die sgcEditors-Demos ausführen

Gallery, Calendar, BookingForm, Validation und DataAware gibt es für VCL und C++ Builder, dazu GalleryFMX und ValidationFMX für FireMonkey; die .NET-Edition hat Gallery und Validation für WinForms, WPF und Avalonia, BookingForm, BindingWpf und DataAwareWinForms.

Calendar

Calendar

Ein Bereich von bis zu 14 Tagen, Kalenderwochen, deaktivierte Wochenenden und Feiertage und ein Locale-Wechsel zwischen Englisch, Deutsch, Spanisch, Französisch und Italienisch.

BookingForm

Eine Hotelbuchung mit einer Live-Zusammenfassung von Aufenthalt, Gästen und Ankunftszeit, einem Länder-Lookup, einer Telefonnummer mit Maske und einem Validator, der die Gästefelder vor der Buchung prüft. Sie zeigt, wie die Steuerelemente in einem echten Formular zusammenarbeiten.

DataAware

Nur Registered DataAware

Die zehn datensensitiven Editoren auf einem TClientDataSet mit einem TDBGrid und einem TDBNavigator, mit einer Lookup-Eingabe, die aus einem zweiten Dataset gefüllt wird, und einem Validator für die Pflichtfelder. Die datensensitiven Steuerelemente brauchen die Edition Registered oder Trial.

GalleryFMX

Die Gallery, gebaut mit den FireMonkey-Editoren, für Windows und Android, mit denselben Eigenschaften und Ereignissen wie die VCL-Steuerelemente.

Validation

Jede Regelart an Standard- und sgcEditors-Steuerelementen, die drei Trigger, die Anzeige mit Rahmen und Symbol und die Zusammenfassungsliste. ValidationFMX macht dasselbe in FireMonkey, und die .NET-Edition hat Validation, ValidationWpf und ValidationAvalonia.

Kompilierte Demos

Sofort lauffähige Programme jedes sgcUI-Produkts, nichts zu installieren.

sgcUI_bin.zip herunterladen →

Getting-Started-Leitfaden

Fünf QuickStart-Demos für Delphi (VCL) liegen in Demos\Editors\Delphi\00.QuickStart. Der PDF-Leitfaden (auf Englisch) führt Schritt für Schritt durch sie: die ersten Editoren auf einem Formular, Werte lesen und schreiben, Themes, Validierung und eine Kontakte-Anwendung auf Basis eines Datenformulars.

Leitfaden herunterladen (PDF, Englisch) →

Wo sgcEditors enthalten ist

sgcEditors ist in jeder sgcUI-Edition enthalten und wird auch einzeln verkauft. sgcEditors ist außerdem im All-Access-Paket enthalten.

sgcEditors Einzelpaket

€199 / Entwickler, voller Quellcode, 1 Jahr Updates.

sgcEditors kaufen → Preise ansehen →

sgcUI Standard

sgcEditors, sgcGrid, sgcNavigation und sgcToolbar, ab €380.

Standard ansehen →

sgcUI Professional

Standard plus sgcCharts, sgcDashboard und sgcGauges, ab €529.

Professional ansehen →

sgcUI Enterprise

Alle 17 sgcUI-Produkte, ab €699.

Enterprise ansehen →

Die kostenlose Community Edition (esegece.sgcEditors.Community auf NuGet) hat alle fünfzehn Steuerelemente, das Layout-Steuerelement und das Validierungs-Framework, aber die Farbauswahl hat kein HSV-Quadrat und keine Alphaleiste, die Token-Eingabe hat keine Autovervollständigungsliste, der Bereichsschieberegler hat nur einen Griff, und es gibt keine datensensitiven Editoren, kein Datenformular und keine WinForms-DataSource-Bindung.

FunktionCommunity (kostenlos)Registered
Alle fünfzehn Steuerelemente für VCL, FireMonkey und .NET✓✓
Validierung: Regeln, Fehleranzeige, Zusammenfassung (sgcUICore)✓✓
Lookup-Listen aus ItemsSource unter WinForms, WPF und Avalonia✓✓
Native Texteingabe, großzügiges Parsen, Lokalisierung✓✓
Kalenderbereiche, Limits und deaktivierte Tage✓✓
Tastatur, DPI, Themes und Headless-Ausgabe✓✓
NumPad für Touch-Panels✓✓
Bildschirmtastatur mit zehn Belegungen✓✓
Kippschalter für Einstellungen✓✓
IP-Adress-Eingabe für IPv4 und IPv6✓✓
Zeitspannen-Eingabe für Dauern✓✓
Schriftartauswahl mit Vorschau jeder Familie✓✓
Checkbox-Liste mit Alle auswählen und Filter✓✓
Dual-Listbox mit Schaltflächen zum Verschieben und Sortieren✓✓
Layout-Steuerelement mit als JSON gespeicherten Layouts (in Delphi Community im Code erzeugt)✓✓
Bereichsregler mit zwei Reglern−✓
HSV-Quadrat und Alphaleiste der Farbauswahl−✓
Autovervollständigungsliste des Token-Edits−✓
Datensensitive Editoren (Delphi und C++ Builder)−✓
DataSource, DataMember und DataField unter WinForms−✓
Datenformular aus einem TDataSet, einer Klasse, einer DataTable oder einem Objekt, mit Validierung und Smart Paste−✓

Unterstützte Frameworks und Plattformen

Komponenten in sgcEditors

Jedes Steuerelement gibt es für VCL, FireMonkey, WinForms, WPF und Avalonia mit denselben Eigenschaften und Ereignissen.

SteuerelementVCL und C++ BuilderFireMonkey.NET
MonatskalenderTsgcVCLMonthCalendarTsgcFMXMonthCalendarTsgcWinFormsMonthCalendar
DatumsauswahlTsgcVCLDatePickerTsgcFMXDatePickerTsgcWinFormsDatePicker
ZeitauswahlTsgcVCLTimePickerTsgcFMXTimePickerTsgcWinFormsTimePicker
Datum-Zeit-AuswahlTsgcVCLDateTimePickerTsgcFMXDateTimePickerTsgcWinFormsDateTimePicker
BereichsreglerTsgcVCLRangeSliderTsgcFMXRangeSliderTsgcWinFormsRangeSlider
FarbauswahlTsgcVCLColorPickerTsgcFMXColorPickerTsgcWinFormsColorPicker
Token-EditTsgcVCLTokenEditTsgcFMXTokenEditTsgcWinFormsTokenEdit
BewertungTsgcVCLRatingTsgcFMXRatingTsgcWinFormsRating
Spin-EditTsgcVCLSpinEditTsgcFMXSpinEditTsgcWinFormsSpinEdit
Button-EingabeTsgcVCLButtonEditTsgcFMXButtonEditTsgcWinFormsButtonEdit
Such-EingabeTsgcVCLSearchEditTsgcFMXSearchEditTsgcWinFormsSearchEdit
Masken-EingabeTsgcVCLMaskEditTsgcFMXMaskEditTsgcWinFormsMaskEdit
Währungs-EingabeTsgcVCLCurrencyEditTsgcFMXCurrencyEditTsgcWinFormsCurrencyEdit
Lookup-EingabeTsgcVCLLookupEditTsgcFMXLookupEditTsgcWinFormsLookupEdit
MemoTsgcVCLMemoTsgcFMXMemoTsgcWinFormsMemo
KippschalterTsgcVCLToggleSwitchTsgcFMXToggleSwitchTsgcWinFormsToggleSwitch
IP-Adress-EingabeTsgcVCLIPAddressEditTsgcFMXIPAddressEditTsgcWinFormsIPAddressEdit
Zeitspannen-EingabeTsgcVCLTimeSpanEditTsgcFMXTimeSpanEditTsgcWinFormsTimeSpanEdit
SchriftartauswahlTsgcVCLFontPickerTsgcFMXFontPickerTsgcWinFormsFontPicker
Checkbox-ListeTsgcVCLCheckListBoxTsgcFMXCheckListBoxTsgcWinFormsCheckListBox
Dual-ListboxTsgcVCLDualListBoxTsgcFMXDualListBoxTsgcWinFormsDualListBox
NumPadTsgcVCLNumPad, TsgcVCLNumPadPopupTsgcFMXNumPad, TsgcFMXNumPadPopupTsgcWinFormsNumPad, TsgcWinFormsNumPadPopup
BildschirmtastaturTsgcVCLKeyboard, TsgcVCLKeyboardPopupTsgcFMXKeyboard, TsgcFMXKeyboardPopupTsgcWinFormsKeyboard, TsgcWinFormsKeyboardPopup
Layout-SteuerelementTsgcVCLLayoutControlTsgcFMXLayoutControlTsgcWinFormsLayoutControl
DatenformularTsgcVCLDataFormTsgcFMXDataFormTsgcWinFormsDataForm

Die .NET-Spalte zeigt die WinForms-Namen, dieselben Steuerelemente gibt es für WPF und Avalonia mit den Präfixen TsgcWpf und TsgcAvalonia. Nicht visuelle Helfer: TsgcEditorModel, TsgcEditorLocale und TsgcEditorFieldLink. Die zehn datensensitiven Editoren (TsgcVCLDBDatePicker, TsgcVCLDBTimePicker, TsgcVCLDBSpinEdit, TsgcVCLDBRating, TsgcVCLDBRangeSlider, TsgcVCLDBButtonEdit, TsgcVCLDBMaskEdit, TsgcVCLDBCurrencyEdit, TsgcVCLDBMemo und TsgcVCLDBLookupEdit, dazu die FireMonkey-Zwillinge) gibt es nur in der Edition Registered, und sie existieren für Delphi und C++ Builder; in .NET binden die WinForms-Editoren der Edition Registered über DataSource, DataMember und DataField. Das Layout-Steuerelement ist in jeder Edition enthalten, das Datenformular nur in Registered. Der Validator und die Validierungszusammenfassung gehören zu sgcUICore: TsgcVCLValidator, TsgcFMXValidator, TsgcWinFormsValidator, TsgcWpfValidator und TsgcAvaloniaValidator.

ZielKomponentePlattformen
Delphi 7 bis 13, VCLTsgcVCL-EditorenWin32 und Win64 ab XE2
Delphi XE6 bis 13, FireMonkeyTsgcFMX-EditorenWindows, macOS, iOS und Android
C++ Builder 2007 bis 13TsgcVCL- und TsgcFMX-EditorenGenerierte .hpp-Header und statische Bibliotheken
Delphi 10.2 bis 13, Framework-neutralModelle, das Layout-Modell und sein JSON, Headless-Ausgabe als PNG und SVGLinux64 (keine Linux-Steuerelemente)
.NET Framework 4.7.2, .NET 8, 9 und 10WinForms-, WPF- und Avalonia-EditorenWindows-Desktop- und Avalonia-Ziele

Häufig gestellte Fragen

Ja. Jedes Textfeld ist ein echtes Edit der Plattform, ein randloses TEdit in VCL und ein FMX-TEdit in FireMonkey, sodass IME-Eingabe für Japanisch, Chinesisch und Koreanisch, die Zwischenablage, Rückgängig, das Kontextmenü und Screenreader ohne Spezialcode funktionieren. Siehe Texteingabe und IME.

Ja. MinDate und MaxDate setzen die Grenzen, DisabledDates listet Feiertage auf, DisabledWeekDays sperrt Wochenenden, und OnIsDateDisabled entscheidet über jede andere Regel. Deaktivierte Tage werden durchgestrichen, von der Tastatur übersprungen und bei der Eingabe in eine Auswahl abgelehnt. Die Demo Calendar sperrt Wochenenden und zwei Feiertage, um die Regeln in Aktion zu zeigen.

Zehn, in Delphi und C++ Builder: die Datumsauswahl, die Zeitauswahl, die Spin-Eingabe, die Bewertung, der Bereichsschieberegler, die Button-Eingabe, die Masken-Eingabe, die Währungs-Eingabe, das Memo und die Lookup-Eingabe, jeweils als VCL- und FireMonkey-Steuerelement. Sie brauchen die Edition Registered oder Trial. In .NET binden die WinForms-Editoren der Edition Registered ein Feld über DataSource, DataMember und DataField, und in beiden Editionen binden die Steuerelemente über die Datenbindung von WinForms, WPF und Avalonia, und die Lookup-Eingabe bezieht ihre Zeilen aus ItemsSource.

Alle fünfzehn Steuerelemente und das Validierungs-Framework sind enthalten. Community lässt das HSV-Quadrat und die Alphaleiste der Farbauswahl, die Autovervollständigungsliste der Token-Eingabe, den zweiten Griff des Bereichsschiebereglers und die Member DataSource, DataMember und DataField der WinForms-Editoren weg. Die datensensitiven Delphi-Editoren gibt es nur in Registered. Siehe Editionen.

Ja. Ziehe den Validator von sgcUICore auf das Formular, setze seinen Container und füge Regeln hinzu: Pflichtfeld, Bereich, Länge, regulärer Ausdruck, E-Mail, Vergleich und benutzerdefiniert. Er prüft die sgcEditors-Steuerelemente und die Standard-Edits, Memos, Kombinationsfelder, Kontrollkästchen und Auswahlfelder, zeigt einen Rahmen, ein Symbol und eine optionale Zusammenfassung an, und Screenreader lesen die Meldungen vor. Rufe Validate vor dem Speichern auf. Er ist in jeder Edition enthalten, für VCL, FireMonkey, WinForms, WPF und Avalonia. Siehe Validierung.

Ja. Jedes Steuerelement behält seine eigene Kopie von FormatSettings, sodass Tages- und Monatsnamen, Formate, Trennzeichen und der erste Wochentag pro Steuerelement verschieden sein können. Die Demo Calendar wechselt zur Laufzeit zwischen Englisch, Deutsch, Spanisch, Französisch und Italienisch, und Kalenderwochen folgen ISO 8601, sofern du nichts anderes wählst.

Für Datums- und Zeitangaben ja: TsgcVCLDatePicker, TsgcVCLTimePicker und TsgcVCLDateTimePicker sind getippte Edits mit Dropdown-Kalender oder Zeitliste. Dazu parsen sie Monatsnamen großzügig, beachten Limits und deaktivierte Tage, folgen dem sgcUI-Theme und werden mit der DPI jedes Monitors gezeichnet.

Ja. C++ Builder 2007 und 2010 bis 13 nutzen dieselben VCL- und FireMonkey-Steuerelemente über generierte Header und Bibliotheken, und jede Delphi-Demo, einschließlich DataAware, wird auch als C++ Builder-Projekt ausgeliefert. Der Code-Tab auf dieser Seite zeigt dasselbe Formular in Delphi, C++ Builder und C#, und jedes Beispiel wurde vor der Veröffentlichung kompiliert.

sgcEditors Hilfe

3,000+Entwickler
20+Jahre
761+Komponenten
30+API-Integrationen
5Plattformen
30 Tage Geld-zurück-GarantieNicht zufrieden? Fordere innerhalb von 30 Tagen nach dem Kauf eine vollständige Rückerstattung an. Rückerstattungsrichtlinie ansehen

sgcEditors heute testen

Die sgcUI-Testversion enthält sgcEditors und jedes andere sgcUI-Produkt.