Delphi, C++ Builder & .NET Onderdeel van sgcUI

sgcEditors, de moderne invoerbesturingselementen voor Delphi, C++ Builder & .NET

Vijftien formulierinvoeren die op elke monitor hetzelfde eruitzien en zich gedragen als native edits: een kalender met echte boekingsregels, datum- en tijdkiezers, een bereikschuifregelaar, een kleurkiezer, chips, sterren, een draaiveld, knop-, zoek-, masker- en valutavelden, een lookup met meerdere kolommen en een memo, plus een schakelaar voor instellingen, een IP-adresveld, een tijdsduurveld, een lettertypekiezer, een selectievakjeslijst, een dubbele lijst, een NumPad en een schermtoetsenbord voor aanraakpanelen. Typ een datum in je eigen taal, controleer het hele formulier voordat je opslaat, schakel met één eigenschap over op het donkere thema en bind de editors aan een dataset.

Vijftien besturingselementen voor VCL, FireMonkey, WinForms, WPF, AvaloniaFormuliervalidatie in elke editieNative tekstinvoer met IME en klembordGratis .NET Community-editieInbegrepen in sgcUI Standard
Gallery-demo met de maandkalender, datum-, tijd- en datumtijdkiezers, spin-invoer, waardering, bereikschuifregelaar, tokeninvoer en kleurkiezer

Invoer die je formulieren verdienen

Zestien functies waarmee datums, bedragen, codes, keuzes en tags snel zijn in te voeren en moeilijk fout te doen zijn.

De besturingselementen

Vijftien invoeren die de velden van echte bedrijfsformulieren dekken, elk beschikbaar voor VCL, FireMonkey en .NET.

De Gallery-demo met de besturingselementen van sgcEditors

De besturingselementen

Vijftien moderne invoeren in één pakket

Boekingsformulieren, instellingenpagina's en filters vragen steeds om dezelfde invoeren: een kalender, een datum- of tijdkiezer, een schuifregelaar, een kleur, een lijst met tags, een sterrenbeoordeling, een getal met eenheden, een code met masker, een prijs, een keuze uit een lange lijst, een zoekvak en een opmerking. sgcEditors geeft je alle vijftien als één consistente familie. Elk besturingselement bestaat voor VCL en FireMonkey met dezelfde gepubliceerde eigenschappen en gebeurtenissen, en voor WinForms, WPF en Avalonia met dezelfde namen, dus wat je bij één besturingselement leert, geldt voor de andere. Ze delen één thema, één accentkleur en één toetsenbordmodel. Sleep ze vanaf de pagina SGC Editors van het palet en ze zien er bij de eerste start goed uit.

  • TsgcVCLMonthCalendar, TsgcVCLDatePicker, TsgcVCLTimePicker, TsgcVCLDateTimePicker
  • TsgcVCLRangeSlider en TsgcVCLSpinEdit voor getallen
  • TsgcVCLColorPicker, TsgcVCLTokenEdit, TsgcVCLRating
  • TsgcVCLButtonEdit, TsgcVCLSearchEdit, TsgcVCLMaskEdit, TsgcVCLCurrencyEdit, TsgcVCLLookupEdit, TsgcVCLMemo
  • Alle stammen af van TsgcVCLCustomEditor
Het helponderwerp lezen
Een kalender die echte boekingsregels volgt

De besturingselementen

Een kalender die echte boekingsregels volgt

Een hotel, een kliniek of een verhuurbalie accepteert nooit zomaar elke datum. De maandkalender selecteert één datum of, met SelectionMode op esmRange, een bereik van dagen, en MaxRangeDays beperkt hoe lang dat bereik mag zijn. Dagen buiten MinDate en MaxDate, vermelde DisabledDates, DisabledWeekDays zoals weekenden, en elke dag die je OnIsDateDisabled-handler weigert, worden doorgestreept getekend en kunnen niet worden gekozen. ISO 8601-weeknummers en de maand-, jaar- en decenniumweergaven helpen gebruikers ver vooruit te springen. Dezelfde kalender vormt de dropdown van de datumkiezers, dus de regels gelden overal waar een datum wordt gekozen.

  • SelectionMode: esmSingle of esmRange
  • MinDate, MaxDate en MaxRangeDays
  • DisabledDates, DisabledWeekDays, OnIsDateDisabled
  • ShowWeekNumbers voor ISO-weeknummers
Het helponderwerp lezen
Prijs- en datumbereiken met twee handvatten

De besturingselementen Alleen geregistreerd

Prijs- en datumbereiken met twee handvatten

Filters voor prijs, gewicht of afstand lezen het best als een bereik op een rail. De bereikschuifregelaar kiest een waarde tussen Min en Max met één handvat, of een bereik met twee handvatten in RangeMode, horizontaal of verticaal. Hij tekent streepjes, labels en een tip met de waarde boven het versleepte handvat, en een klik op de rail verplaatst het dichtstbijzijnde handvat daarheen. De handvatten kruisen nooit, Step rondt waarden af en MinRange houdt een minimale afstand aan, zodat het filter nooit per ongeluk leeg kan worden. Waarden en labels volgen de locale van het besturingselement, inclusief decimale en duizendtalscheidingstekens.

  • RangeMode met Value en EndValue
  • Min, Max, Step en MinRange
  • TickInterval, ShowLabels, ShowValueTip
  • LabelFormat of OnFormatLabel voor valuta

Community: er wordt één handvat getekend en bewerkt; EndValue wordt bewaard maar niet getoond.

Het helponderwerp lezen
Tags en chips met automatisch aanvullen

De besturingselementen Alleen geregistreerd

Tags en chips met automatisch aanvullen

Tags, ontvangers en vaardigheden zijn lijsten, geen regel tekst. De tokeninvoer tekent elk item als een chip met een verwijderknop, laat de chips omslaan en scrolt wanneer ze niet passen. Een scheidingsteken, Enter, Tab of het verlies van de focus maakt van de getypte tekst een chip, en plakken van a, b, c maakt er drie. OnValidateToken normaliseert of weigert elk item, en AllowDuplicates, CaseSensitive en MaxTokens bepalen de regels. In Registered-builds stelt een lijst met automatisch aanvullen items voor terwijl de gebruiker typt. AddToken, RemoveToken en Clear wijzigen de lijst vanuit code wanneer je een record laadt of opslaat.

  • Tokens bevat de chips; Delimiters beëindigt er één
  • OnValidateToken en InvalidTokens controleren elk item
  • AutoCompleteItems en AutoCompleteMinChars voor suggesties
  • OnTokenAdded en OnTokenRemoved melden wijzigingen

Community: de chips, validatie en limieten werken; de lijst met automatisch aanvullen opent nooit.

Het helponderwerp lezen

De besturingselementen Alleen geregistreerd

Kies elke kleur, met alfa

Themaeditors, grafiekinstellingen en labelontwerpers hebben meer nodig dan een vast palet. De kleurkiezer stapelt een raster met kleurstalen, een vierkant voor verzadiging en waarde, een tintbalk, een alfabalk en een rij met een voorbeeld en een hex-invoer, en Parts bepaalt welke ervan verschijnen. De hex-invoer accepteert #RGB, #RGBA, #RRGGBB en #RRGGBBAA. De kiezer houdt de tint los van de kleur, zodat een grijs zijn tint behoudt en het vierkant nooit springt terwijl de gebruiker sleept. Definieer je merkpalet als kleurstalen en gebruikers hebben nog steeds de volledige kiezer op één klik afstand.

  • Parts met ecpSwatches, ecpHSV, ecpAlpha, ecpHex
  • Swatches en SwatchColumns voor je palet
  • SelectedColor als ARGB-waarde
  • OnChangeComplete wanneer de gebruiker de muis loslaat

Community: alleen kleurstalen en hex; het HSV-vierkant en de alfabalk worden niet getekend en de alfa is altijd $FF.

Het helponderwerp lezen

De besturingselementen

Knoppen, zoeken en notities in dezelfde stijl

Veel velden hebben een knop naast de tekst nodig: een bestand zoeken, een dialoogvenster openen, de waarde wissen. Het knopveld plaatst knoppen voor bladeren, uitklappen, zoeken, wissen, plus, min, tekst of zelfgetekende knoppen aan beide kanten van een native edit, elk met een eigen sneltoets, en schermlezers noemen elke knop bij naam en kunnen erop drukken. Het zoekveld activeert OnSearch na een pauze in het typen of meteen met Enter en biedt eerdere zoekopdrachten opnieuw aan in een uitklapbare geschiedenis. De memo is een meerregelige editor met thema, met een plaatsaanduiding, een tekenteller met optionele limiet en een hoogte die de regels volgt tussen MinLines en MaxLines.

  • TsgcVCLButtonEdit met Buttons en OnButtonClick
  • TsgcVCLSearchEdit met SearchDelay, History en OnSearch
  • TsgcVCLMemo met ShowCounter, MaxLength, AutoHeight
Het helponderwerp lezen

De besturingselementen

Masker- en valutainvoer die je met .NET kunt delen

Telefoonnummers, postcodes, rekeningnummers en prijzen hebben een vast formaat nodig. Het maskerveld neemt een invoermasker in de EditMask-syntaxis van Delphi of in de MaskedTextBox-syntaxis van .NET, dus één masker gedraagt zich hetzelfde in een Delphi- en in een .NET-toepassing: de letterlijke tekens blijven vast, elke positie accepteert alleen haar soort teken en Text geeft de waarde met of zonder de letterlijke tekens terug. Het valutaveld bewaart een exacte Currency-waarde, in .NET een decimal, zonder drijvende komma. Het toont het volledige valutaformaat van de landinstelling zolang het niet de focus heeft, en een gegroepeerd getal met het symbool of de ISO-code terwijl de gebruiker typt. MinValue, MaxValue en AllowNegative houden het bedrag binnen het bereik.

  • EditMask en MaskSyntax: emxDelphi of emxDotNet
  • IsComplete, EditText en SaveLiterals
  • Value, Decimals, CurrencyCode, SymbolMode
  • PositivePattern en NegativePattern
Het helponderwerp lezen

De besturingselementen

Kies een rij uit een lijst met meerdere kolommen

Klanten, producten en landen kies je op naam, maar sla je op met een sleutel. Het lookupveld opent een uitklaplijst met meerdere kolommen en een optionele koprij en filtert die terwijl de gebruiker typt. Het veld toont de weergavekolom en KeyValue bewaart de sleutel, zoals een landcode achter een landnaam. De rijen komen uit Items, één regel per rij met de cellen gescheiden door |, of uit OnGetItems voor een zoekopdracht op een server, en OnNotInList bepaalt wat er gebeurt met een tekst die bij geen enkele rij past. In .NET kunnen de rijen ook uit elke verzameling komen via ItemsSource, DisplayMember en ValueMember, op WinForms, WPF en Avalonia.

  • Columns met Title, Width en Alignment
  • KeyColumn, DisplayColumn en KeyValue
  • ShowHeader, MatchMode, DropDownRows
  • .NET: ItemsSource, SelectedValue in elke editie
Het helponderwerp lezen

De besturingselementen

Een schakelaar voor instellingen en opties

Instellingenpagina's en optiepanelen zetten functies aan en uit. De schakelaar is de moderne vorm van een selectievakje: een afgeronde baan met een ronde knop die naar de nieuwe stand glijdt, een optioneel bijschrift aan beide kanten en, als je dat wilt, de tekst Aan en Uit in de baan. Hij wordt zelf getekend, neemt in de aan-stand de accentkleur van het thema over en schaalt mee met de DPI. Een wijziging door de gebruiker loopt eerst door OnChanging, zodat een regel van je formulier haar kan weigeren, en OnChange draait na elke wijziging, door de gebruiker of door code.

  • TsgcVCLToggleSwitch en TsgcFMXToggleSwitch, en in .NET TsgcWinFormsToggleSwitch, TsgcWpfToggleSwitch en TsgcAvaloniaToggleSwitch
  • Checked, Caption, CaptionPosition, ShowText met OnText en OffText, ReadOnly en Animated
  • TrackOnColor, TrackOffColor en ThumbColor, of de kleuren van het thema, en SwitchWidth en SwitchHeight voor de grootte van de baan
  • OnChanging annuleert een wijziging door de gebruiker met Allow, OnChange wordt na elke wijziging afgevuurd en Toggle wijzigt de stand zoals de gebruiker dat zou doen
  • Klik, slepen van de knop, Spatie, Links en Rechts, formulieren van rechts naar links en een selectievakje met het Toggle-patroon voor schermlezers
  • In WPF en Avalonia bindt Checked standaard in twee richtingen, en in WinForms genereert het CheckedChanged voor de gegevensbinding

De schakelaar zit in elke editie, ook in Community.

Het helponderwerp lezen

De besturingselementen

Een IP-adresveld voor IPv4 en IPv6

Netwerkinstellingen, apparaatconfiguratie en firewallregels vragen om adressen. In IPv4 toont het IP-adresveld vier octetvelden met puntscheidingstekens en gaat het naar het volgende veld terwijl de gebruiker typt. Een adres is dus even snel in te voeren als in een gewoon invoerveld en is altijd goed gevormd: een waarde boven 255 wordt begrensd en de lege velden worden 0 wanneer de focus weggaat. In IPv6 is het één tekstveld dat hexadecimale cijfers, dubbele punten en punten accepteert, de tekst valideert en hem schrijft in de canonieke RFC 5952-vorm wanneer de focus weggaat, zodat 2001:DB8:0:0:0:0:2:1 verandert in 2001:db8::2:1.

  • TsgcVCLIPAddressEdit en TsgcFMXIPAddressEdit, en in .NET TsgcWinFormsIPAddressEdit, TsgcWpfIPAddressEdit en TsgcAvaloniaIPAddressEdit
  • Mode kiest IPv4 of IPv6, Address is de waarde en Octets leest of stelt één veld van een IPv4-adres in
  • IsValid geeft aan of het adres volledig is, en met Required toont een leeg of onvolledig adres het foutkader van het thema
  • Een punt of een derde cijfer gaat naar het volgende veld, Backspace aan het begin van een veld gaat terug, Links en Rechts steken de veldgrenzen over en een geplakt adres vult alle velden
  • OnChange wordt na elke wijziging afgevuurd, Clear maakt het adres leeg en schermlezers zien een invoerveld met het Value-patroon
  • In WPF en Avalonia bindt Address standaard in twee richtingen, en in WinForms genereert het AddressChanged voor de gegevensbinding

Het IP-adresveld zit in elke editie, ook in Community.

Het helponderwerp lezen

De besturingselementen

Een tijdsduurveld voor tijdsduren

Een time-out, een interval of een looptijd is een tijdsduur en geen tijdstip. Het tijdsduurveld toont hem in segmenten, dagen, uren, minuten, seconden en milliseconden, en de gebruiker bewerkt één segment per keer door te typen, met de pijltjestoetsen, het muiswiel of de draaiknoppen. Een stap loopt door naar het volgende segment, dus 59 seconden plus één is één minuut, en het hoogste getoonde segment heeft geen bovengrens, zodat zonder dagen 50 uur als 50:00:00 wordt weergegeven.

  • TsgcVCLTimeSpanEdit en TsgcFMXTimeSpanEdit, en in .NET TsgcWinFormsTimeSpanEdit, TsgcWpfTimeSpanEdit en TsgcAvaloniaTimeSpanEdit
  • Value in milliseconden in Delphi en een TimeSpan in .NET, met de delen Days, Hours, Minutes, Seconds en Milliseconds
  • Segments kiest de getoonde segmenten en DisplayFormat schrijft de waarde als klok, 1.02:30:05.250, of met eenheden, 1d 2h 30m 5s 250ms
  • MinValue en MaxValue begrenzen de waarde, AllowNegative accepteert een voorafgaand minteken, en Increment en ShowButtons stellen de stap en de draaiknoppen in
  • Omhoog en Omlaag verhogen of verlagen het actieve segment, PageUp en PageDown stappen met tien, Links, Rechts en Tab gaan tussen de segmenten, en schermlezers zien een draaiveld met het RangeValue-patroon in seconden
  • In WPF en Avalonia bindt Value standaard in twee richtingen, en in WinForms genereert het ValueChanged voor de gegevensbinding

Het tijdsduurveld zit in elke editie, ook in Community.

Het helponderwerp lezen

De besturingselementen

Een lettertypekiezer met een voorbeeld van elke familie

Rapportontwerpers, labeleditors en instellingenpagina's laten de gebruiker een lettertype kiezen. De lettertypekiezer is een invoerveld met een uitklapknop waarvan de lijst elke lettertypefamilie in het eigen lettertype tekent. Typen filtert de families, de laatst gekozen families staan bovenaan boven een scheidingslijn, en een filter houdt alleen de families met vaste breedte over, voor een code-editor of een terminal. De lijst komt van het platform totdat de applicatie hem vult.

  • TsgcVCLFontPicker en TsgcFMXFontPicker, en in .NET TsgcWinFormsFontPicker, TsgcWpfFontPicker en TsgcAvaloniaFontPicker
  • FontName is de waarde, Fonts de lijst met families en RefreshFonts laadt hem opnieuw nadat een lettertype is geïnstalleerd
  • ShowPreview tekent elke naam in het eigen lettertype en PreviewText voegt een voorbeeldtekst achter de naam toe
  • RecentCount en RecentFonts bewaren de laatst gekozen families, zodat de applicatie ze kan opslaan en weer laden
  • FontFilter houdt de families met vaste breedte over, en Alt+Omlaag opent de lijst, Enter of een klik kiest een familie en Escape sluit hem
  • De Delphi-lettertypekiezer tekent de voorbeeldlettertypen op Windows, in VCL en FireMonkey; op de andere FireMonkey-platforms worden de namen in het themalettertype getoond
  • In WPF en Avalonia bindt FontName standaard in twee richtingen

De lettertypekiezer zit in elke editie, ook in Community.

Het helponderwerp lezen

De besturingselementen

Een selectievakjeslijst voor lange lijsten met opties

De kolommen van een grid, de filters van een rapport of de modules van een licentie zijn lange lijsten met opties. De selectievakjeslijst is een scrollende lijst met een selectievakje op elke rij, uitgeschakeld, ingeschakeld of grijs, en een vlag per item voor ingeschakeld of niet. Een optionele kopregel Alles selecteren vinkt alle ingeschakelde items aan of uit, en een optioneel filtervak verbergt de rijen die de getypte tekst niet bevatten zonder hun stand te wijzigen. Alleen de rijen in beeld worden getekend, zodat een lijst van 10000 items snel blijft.

  • TsgcVCLCheckListBox en TsgcFMXCheckListBox, en in .NET TsgcWinFormsCheckListBox, TsgcWpfCheckListBox en TsgcAvaloniaCheckListBox
  • Items met Checked, State en ItemEnabled per item, en AllowGrayed voor de derde stand
  • ShowCheckAll toont de rij Alles selecteren met drie standen en ShowFilter het filtervak
  • CheckAll, UncheckAll en CheckedCount, en OnClickCheck vóór OnChange voor een wijziging door de gebruiker
  • Spatie schakelt de actieve rij om, Ctrl+A vinkt elk item aan, een letter springt naar het volgende item dat ermee begint, en schermlezers zien lijstitems met het Toggle-patroon
  • In .NET zijn CheckedItems en CheckedIndices alleen-lezen lijsten voor de binding, en de gebeurtenis ItemCheck komt vóór Change

De selectievakjeslijst zit in elke editie, ook in Community.

Het helponderwerp lezen

De besturingselementen

Een dubbele lijst om items te kiezen en te ordenen

De kolommen van een rapport, de leden van een groep of de stappen van een proces kiezen betekent items van de ene lijst naar de andere verplaatsen. De dubbele lijst tekent de lijst Beschikbaar links en de lijst Geselecteerd rechts, met knoppen ertussen die de geselecteerde rijen of alle rijen verplaatsen, en knoppen Omhoog en Omlaag aan de buitenkant die de lijst Geselecteerd herordenen. Een dubbelklik of slepen verplaatst een item naar de andere lijst, en slepen binnen de lijst Geselecteerd herordent hem.

  • TsgcVCLDualListBox en TsgcFMXDualListBox, en in .NET TsgcWinFormsDualListBox, TsgcWpfDualListBox en TsgcAvaloniaDualListBox
  • AvailableItems en SelectedItems, AvailableCaption en SelectedCaption, ShowCaptions en ShowReorderButtons
  • SortAvailable voegt de teruggeplaatste items op volgorde in, ShowFilter voegt een filtervak boven elke lijst toe en ReadOnly behoudt de selectie en weigert de verplaatsingen
  • MoveToSelected, MoveAllToSelected, MoveToAvailable, MoveAllToAvailable, MoveUp en MoveDown doen wat de knoppen doen
  • OnMoving kan een item laten staan waar het staat, en OnChange wordt één keer per bewerking afgevuurd
  • Klik, Ctrl+klik, Shift+klik en Ctrl+A selecteren, Tab gaat van de ene lijst naar de andere, Ctrl+Rechts en Ctrl+Links verplaatsen, Ctrl+Omhoog en Ctrl+Omlaag herordenen, en de weergave wordt gespiegeld in formulieren van rechts naar links
  • In WPF en Avalonia bindt SelectedItems standaard in twee richtingen, en in WinForms genereert het SelectedItemsChanged voor de gegevensbinding

De dubbele lijst zit in elke editie, ook in Community.

Het helponderwerp lezen

Typen, taal en gegevens

Snelle invoer voor toetsenbordgebruikers, een controle van elk veld voordat je opslaat, de juiste taal voor elke gebruiker en een directe koppeling met je datasets.

Typen, taal en gegevens

Echt typen, niet alleen klikken

Medewerkers die gegevens invoeren typen datums, ze klikken niet door kalenders. Elk tekstveld van sgcEditors is een echt invoerbesturingselement van het platform, dus IME-compositie voor Japans, Chinees en Koreaans, het klembord, ongedaan maken, het contextmenu en schermlezers werken allemaal. De parser is ruimdenkend: schuine strepen, koppeltekens, punten, dubbele punten, komma's of spaties scheiden de velden, maand- en dagnamen van de locale worden begrepen en jaartallen met twee cijfers worden gedraaid. Omhoog en Omlaag laten het segment onder de cursor doorrollen, en tekst die niet gelezen kan worden activeert OnParseError.

  • DisplayFormat met de segmenten d, m, y, h, n, s
  • OnParseError om vreemde invoer te accepteren of te weigeren
  • AllowEmpty en TextHint voor optionele velden
  • De spin-invoer accepteert zowel . als , als decimaalteken
Het helponderwerp lezen

Typen, taal en gegevens

Een NumPad voor aanraakpanelen

Een aanraakpaneel op de werkvloer heeft geen toetsenbord, en het toetsenbord van het systeem bedekt de helft van het scherm. De NumPad typt een getal met toetsen die groot genoeg zijn voor een vinger of een handschoen. Zet een gedockt pad op het formulier en het schrijft naar het besturingselement dat de focus heeft, of koppel een uitklappend pad aan een besturingselement en een tik op het besturingselement opent het pad eronder. Het doel hoeft niet te veranderen: het pad leest het bereik en de decimalen en schrijft de waarde als een gebruikerswijziging, zodat de afronding, de grenzen en OnChange van het doel werken alsof de gebruiker het had getypt.

  • TsgcVCLNumPad gedockt en TsgcVCLNumPadPopup als uitklappend pad, ook voor FireMonkey en in .NET
  • Typt in het draaiveld, het valutaveld, een standaard invoerveld en de knop- en schuifmeters van sgcGauges
  • Associate kiest het doel, of het pad volgt het besturingselement met de focus
  • Een display met het getypte getal en een grenzenregel zoals Min 0 Max 120

De NumPad zit in elke editie, Community inbegrepen. Hij maakt deel uit van het sgcUI HMI-pakket voor operatorschermen.

Het helponderwerp lezen

Typen, taal en gegevens

Een schermtoetsenbord voor kiosken en aanraakschermen

Een kiosk, een zelfbedieningsterminal of een bedieningspaneel heeft naast getallen ook namen, codes en notities nodig. Het schermtoetsenbord is een volledig toetsenbord op hetzelfde invoerpad als de NumPad. Dock het op het formulier en het schrijft naar het besturingselement dat de focus heeft, of koppel een uitklappend toetsenbord dat onder een invoerveld opent zodra dat veld de focus krijgt. Het toetsenbord neemt nooit de focus over, zodat de cursor en de selectie van het doel blijven waar ze zijn, en een standaard invoerveld, een memo en de sgcEditors-besturingselementen hoeven niet te veranderen.

  • TsgcVCLKeyboard gedockt en TsgcVCLKeyboardPopup als uitklappend toetsenbord, ook voor FireMonkey en in .NET voor WinForms, WPF en Avalonia
  • Associate kiest het doel, of het toetsenbord volgt de focus. AutoPopup, AutoPopupAll, PopupPosition en CloseOnEnter sturen het uitklappen aan
  • Pagina's voor letters, symbolen en cijfers, met Shift, Caps Lock, AltGr en dode toetsen voor letters met accent
  • Tien ingebouwde indelingen (en-US, en-GB, es-ES, fr-FR, de-DE, it-IT, pt-BR, nl-NL, pl-PL en tr-TR), eigen indelingen met sgcKeyboardRegisterLayout en een indelingstoets die door Layouts schakelt
  • OnKeyText wijzigt of annuleert de tekst voordat die wordt geschreven, en OnEnterKey draait na Enter
  • Thema's, formulieren van rechts naar links en toetsen die schermlezers voorlezen

Het schermtoetsenbord zit in elke editie, Community inbegrepen. Het maakt deel uit van het sgcUI HMI-pakket voor operatorschermen en kiosken.

Het helponderwerp lezen
Elk besturingselement spreekt de taal van de gebruiker

Typen, taal en gegevens

Elk besturingselement spreekt de taal van de gebruiker

Internationale teams en meertalige producten hebben datums nodig die voor elke gebruiker natuurlijk lezen. Elk besturingselement heeft zijn eigen FormatSettings, gevuld vanuit de locale van de gebruiker en wijzigbaar tijdens runtime, zodat twee besturingselementen op één formulier zelfs twee locales kunnen gebruiken. De kalender en de kiezers nemen daar dag- en maandnamen, datum- en tijdnotaties, AM- en PM-teksten en scheidingstekens uit over. FirstDayOfWeek en WeekNumbering volgen de locale of jouw keuze, en getallen gebruiken de juiste decimale en duizendtalscheidingstekens. De eenheden, hints en toegankelijke namen blijven je eigen eigenschappen, dus je vertaalt ze samen met de rest van het formulier.

  • FormatSettings per besturingselement
  • FirstDayOfWeek: efdLocale of afgedwongen efdMonday
  • WeekNumbering: standaard ewnISO8601
  • TsgcEditorLocale voor headless modellen
  • Rechts naar links voor Arabisch en Hebreeuws: draai-, uitklap- en wisknoppen verhuizen naar de andere kant, schuifregelaars, beoordelingen en de kalender lopen vanaf rechts, en het invoerveld leest van rechts naar links
Het helponderwerp lezen
Dataverbonden versies voor je formulieren

Typen, taal en gegevens Alleen geregistreerd

Dataverbonden versies voor je formulieren

De meeste Delphi-bedrijfsformulieren zitten op een TDataSet, en elke editor met de hand bedraden is repetitief. Tien dataverbonden besturingselementen binden rechtstreeks aan een veld via DataSource en DataField: een datumkiezer, een tijdkiezer, een draaiveld, een beoordeling, een bereikschuifregelaar waarvan de tweede greep EndDataField bindt, een knopveld, een maskerveld dat de EditMask van zijn veld overneemt, een valutaveld, een memo en een lookupveld dat zijn lijst met meerdere kolommen via ListSource, KeyField en ListField uit een tweede dataset vult, zoals TDBLookupComboBox. Nulvelden verschijnen leeg wanneer AllowEmpty aan staat, en een verplicht veld meldt een lege waarde aan de validator. Ze binden via TsgcEditorFieldLink, dat alleen de DB-unit gebruikt, zodat de FireMonkey-versies geen LiveBindings nodig hebben. In .NET binden de WinForms-editors een veld via DataSource, DataMember en DataField met een BindingSource, een DataTable, een DataView of een List, en de waarde-eigenschappen van WPF en Avalonia binden in twee richtingen. Sleep ze op een bestaand formulier en de datasetlogica die je al hebt, blijft ongewijzigd werken.

  • TsgcVCLDBDatePicker, TsgcVCLDBTimePicker, TsgcVCLDBSpinEdit
  • TsgcVCLDBRating en TsgcVCLDBRangeSlider
  • TsgcVCLDBButtonEdit, TsgcVCLDBMaskEdit, TsgcVCLDBCurrencyEdit, TsgcVCLDBMemo, TsgcVCLDBLookupEdit
  • DataSource, DataField, EndDataField; lookuplijsten via ListSource, KeyField, ListField
  • WinForms: DataSource, DataMember, DataField; WPF en Avalonia: waarde-eigenschappen binden in twee richtingen

In de .NET Community-pakketten hebben de WinForms-editors geen DataSource, DataMember en DataField; de binding van WPF en Avalonia en de ItemsSource van het lookupveld werken in beide edities.

Het helponderwerp lezen

Typen, taal en gegevens

Controleer het hele formulier voordat je opslaat

Een formulier is pas klaar als elk veld klopt. De validator van sgcUICore controleert de besturingselementen van een formulier aan de hand van regels: verplicht, bereik, lengte, reguliere expressie, e-mail, vergelijking met een ander veld en je eigen code. Hij vindt de besturingselementen op dezelfde manier als Smart Paste, dus hij controleert de sgcEditors-besturingselementen en de standaard edits, memo's, combo's, selectievakjes en kiezers even goed, op VCL, FireMonkey, WinForms, WPF en Avalonia. Het maskerveld meldt een onvolledige waarde en het lookupveld een tekst die niet in de lijst staat, zonder enige regel. Fouten verschijnen als een kader in de foutkleur van het thema, een pictogram met de melding als tooltip en een optionele samenvattingslijst, en schermlezers lezen de melding samen met het veld voor. In .NET toont de validator ook de fouten van je gegevenslaag: IDataErrorInfo en INotifyDataErrorInfo op WinForms en WPF, de gegevensvalidatiefouten op Avalonia.

  • TsgcVCLValidator, TsgcFMXValidator, TsgcWinFormsValidator, TsgcWpfValidator, TsgcAvaloniaValidator
  • Regels uvrRequired, uvrRange, uvrLength, uvrRegex, uvrEmail, uvrCompare, uvrCustom
  • Trigger: standaard uvtExit, daarnaast uvtChange of uvtManual; Validate voordat je opslaat
  • TsgcVCLValidationSummary toont de fouten en geeft het veld met een klik de focus

In elke editie, ook in Community. De reguliere expressies komen op Delphi 7 tot 13 en op .NET met dezelfde teksten overeen.

Het helponderwerp lezen

Typen, taal en gegevens

Rangschik een formulier, of genereer het uit je gegevens

Het layoutbesturingselement rangschikt de besturingselementen van een formulier, zowel die van sgcEditors als standaardbesturingselementen, in groepen, groepen met tabbladen en kolommen, met bijschriften op één breedte uitgelijnd, splitters die de gebruiker kan slepen en layouts van rechts naar links, en SaveLayout bewaart de indeling als JSON. Het gegevensformulier bouwt hierop voort. Richt het op een TDataSet, of bind een object van je eigen klasse, en het maakt per veld één sgcEditors-besturingselement, de validatieregels van elk veld, een samenvatting van de fouten en een navigator om records te doorlopen, toe te voegen, te bewerken, te verwijderen en op te slaan. Smart Paste vult het hele record uit een geplakte tekst, zoals een e-mailhandtekening of een adresblok, en markeert de velden die het heeft ingevuld. In .NET nemen de gegevensformulieren voor WinForms, WPF en Avalonia een DataTable, een lijst of een object.

  • TsgcVCLLayoutControl, TsgcFMXLayoutControl; SaveLayout en LoadLayout
  • TsgcVCLDataForm, TsgcFMXDataForm, TsgcWinFormsDataForm, TsgcWpfDataForm, TsgcAvaloniaDataForm
  • Fields: bijschrift, soort, verplicht, grenzen, groep, tabblad en volgorde van elk veld; BindObject voor een klasse
  • SmartPasteFromClipboard, SmartPasteUndo en een Smart Paste-knop op de navigator

Het layoutbesturingselement zit in elke editie, ook in Community; Delphi Community heeft geen ontwerptijdpakket voor sgcEditors, dus daar wordt het in code aangemaakt. Het gegevensformulier, de validatieregels en de Smart Paste ervan zijn alleen Registered.

Het helponderwerp lezen

Toetsenbord, DPI en thema's

De details die reviewers controleren: geen muis nodig, scherp op elke monitor en een uiterlijk dat bij je applicatie past.

Scherp op elke monitor

Toetsenbord, DPI en thema's

Scherp op elke monitor

Laptops op 150 procent naast externe monitoren op 100 procent zijn nu normaal, en onscherpe invoer ziet er goedkoop uit. sgcEditors legt elk besturingselement uit in logische pixels bij 96 DPI en tekent het op de schaal van het scherm, zonder dat je in je code iets hoeft te doen. Wanneer een VCL-formulier naar een monitor met een andere DPI verhuist, schalen het binnenste invoerveld en zijn lettertype mee met het besturingselement, en een dropdown wordt getekend op de DPI van de monitor waarop hij opent. FireMonkey-rasters volgen de schaal van de scène voor Retina en Android.

  • Indeling in logische pixels, getekend op de schermschaal
  • Binnenste invoervelden schalen opnieuw bij WM_DPICHANGED
  • Dropdowns gebruiken de DPI van hun eigen monitor
  • SaveToPNG accepteert een schaal voor scherpe afbeeldingen
Het helponderwerp lezen
Toetsenbord- en schermlezervriendelijk

Toetsenbord, DPI en thema's

Toetsenbord- en schermlezervriendelijk

Geen enkele functie van sgcEditors heeft een muis nodig. De getekende besturingselementen nemen zelf de focus en de tekstbesturingselementen sturen die door naar hun binnenste invoerveld, en een besturingselement met focus tekent een focusring van 2 pixels in de accentkleur. In de kalender verplaatsen de pijltoetsen een dag of een week en slaan ze uitgeschakelde dagen over, PageUp en PageDown verplaatsen een maand en Shift breidt een bereik uit. In de kiezers opent F4 of Alt+Omlaag de dropdown en herstelt Escape de waarde. De spin-invoer stapt met Omhoog, Omlaag, PageUp en PageDown.

  • F4 of Alt+Omlaag opent elke dropdown
  • Ctrl+Omhoog zoomt de kalender uit naar jaren en decennia
  • Increment en LargeIncrement voor de spin-invoer
  • Native invoervelden houden schermlezers werkend
Het helponderwerp lezen
Licht en donker met één eigenschap

Toetsenbord, DPI en thema's

Licht en donker met één eigenschap

Formulieren zien er af uit wanneer elke invoer hetzelfde thema volgt. Elk besturingselement heeft een Theme, een AccentColor en een TextStyle, en de kleuren van het kader, hover, ingedrukte status, selectie en uitgeschakelde status worden daaruit afgeleid, zodat één eigenschap het hele uiterlijk verandert. De tokens zijn dezelfde die elk sgcUI-product gebruikt, dus editors in een sgcDashboard-tegel of onder een sgcToolbar passen zonder extra werk. Een uitgeschakeld besturingselement vervaagt vanzelf naar de achtergrond. Wissel het thema tijdens runtime en elke editor tekent opnieuw, klaar voor een instelling voor de donkere modus.

  • Theme: utDefault (standaard, volgt het applicatiethema), utLight of utDark
  • AccentColor voor selectie, handvatten, vulling en focusring
  • TextStyle voor grootte, vet en kleur
  • Dezelfde thematokens als de hele sgcUI-suite
Het helponderwerp lezen

Zie sgcEditors in actie

sgcEditors in de sgcUI suite-demo's: complete applicaties die offline draaien met ingebouwde gesimuleerde gegevens.

Wie bouwt er met sgcEditors

Boekings- en reserveringsformulieren

Een boekingsformulier heeft een verblijfsperiode nodig die gesloten dagen respecteert, een aantal gasten, een aankomsttijd en misschien een waardering van het laatste bezoek. De maandkalender dwingt MinDate, MaxRangeDays en uitgeschakelde dagen af, de spin-invoer telt gasten, de tijdkiezer accepteert getypte tijden en de waardering verzamelt feedback, allemaal in één thema. De BookingForm-demo bouwt een hotelboeking uit zeven editors met een live overzicht.

  • Kalenderbereiken
  • Spin-invoer
  • Waardering
Start de BookingForm-demo

Gegevensinvoer op een TDataSet

Bedrijfsapplicaties bewerken de hele dag records. De tien dataverbonden editors binden aan een TDataSet-veld via DataSource en DataField, de bereikschuifregelaar bindt beide uiteinden en null-velden tonen leeg. In combinatie met echte toetsenbordinvoer en ruimdenkende parsing typen operators snel waarden en ontvangt de dataset schone gegevens. De DataAware-demo zet de tien editors op een TClientDataSet naast een TDBGrid en een TDBNavigator.

  • Dataverbonden editors
  • Tekstinvoer
  • Toetsenbord
Start de DataAware-demo

Internationale planningsapps

Planningstools die in meerdere landen worden gebruikt, moeten voor elke gebruiker de juiste weekstart, weeknummers en maandnamen tonen. Elk besturingselement heeft zijn eigen FormatSettings, dus één formulier kan een Duitse kalender naast een Engelse tonen, en FirstDayOfWeek en WeekNumbering volgen de locale of jouw regel. De Calendar-demo wisselt tussen Engels, Duits, Spaans, Frans en Italiaans met een bereik dat tot 14 dagen is beperkt.

  • Lokalisatie
  • Weeknummers
  • Uitgeschakelde dagen
Start de Calendar-demo

Een feedbackformulier in een paar regels

Dezelfde API in Delphi, C++ Builder en C#: een waardering, een bereikschuifregelaar en een tokeninvoer, die allemaal via OnChange rapporteren.

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

Een bestelformulier valideren

Een lookupveld, een maskerveld en een valutaveld, gecontroleerd door de validator van sgcUICore. Roep Validate aan wanneer de gebruiker opslaat: hij toont elke fout en geeft het eerste ongeldige veld de focus.

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();

Genereer een klantenformulier uit een dataset

Een TsgcVCLDataForm op een geopende dataset maakt de editors, de validatieregels en de navigator aan. Stel het soort en de groep van een veld in, bouw opnieuw op, en de Smart Paste-knop van de navigator vult het record vanaf het klembord.

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;

Probeer de sgcEditors-demo's uit

Gallery, Calendar, BookingForm, Validation en DataAware worden meegeleverd voor VCL en C++ Builder, plus GalleryFMX en ValidationFMX voor FireMonkey; de .NET-editie heeft Gallery en Validation voor WinForms, WPF en Avalonia, BookingForm, BindingWpf en DataAwareWinForms.

Calendar

Calendar

Een bereik van maximaal 14 dagen, weeknummers, uitgeschakelde weekenden en feestdagen, en een locale-schakelaar tussen Engels, Duits, Spaans, Frans en Italiaans.

BookingForm

Een hotelboeking met een live samenvatting van het verblijf, de gasten en de aankomsttijd, een landenlookup, een telefoonnummer met masker en een validator die de gastvelden controleert voor de boeking. Het laat zien hoe de besturingselementen samenwerken op een echt formulier.

DataAware

Alleen geregistreerd DataAware

De tien dataverbonden editors op een TClientDataSet met een TDBGrid en een TDBNavigator, met een lookupveld dat uit een tweede dataset wordt gevuld en een validator voor de verplichte velden. De dataverbonden besturingselementen vereisen de editie Registered of Trial.

GalleryFMX

De gallery gebouwd met de FireMonkey-editors, voor Windows en Android, met dezelfde eigenschappen en gebeurtenissen als de VCL-besturingselementen.

Validation

Elk regeltype op standaard besturingselementen en op die van sgcEditors, de drie triggers, de weergave met rand en pictogram en de samenvattingslijst. ValidationFMX doet hetzelfde in FireMonkey, en de .NET-editie heeft Validation, ValidationWpf en ValidationAvalonia.

Gecompileerde demo's

Direct uitvoerbare programma's van elk sgcUI-product, zonder installatie.

sgcUI_bin.zip downloaden →

Getting Started-gids

Vijf QuickStart-demo's voor Delphi (VCL) staan in Demos\Editors\Delphi\00.QuickStart. De PDF-gids (Engels) legt ze stap voor stap uit: de eerste editors op een formulier, waarden lezen en schrijven, thema's, validatie en een contactenapplicatie op basis van een gegevensformulier.

Download de gids (PDF, Engels) →

Waar sgcEditors in zit

sgcEditors zit in elke sgcUI-editie en wordt ook los verkocht. sgcEditors zit ook in de All-Access-bundel.

sgcEditors los pakket

€199 / ontwikkelaar, volledige broncode, 1 jaar updates.

sgcEditors kopen → Prijzen bekijken →

sgcUI Standard

sgcEditors, sgcGrid, sgcNavigation en sgcToolbar, vanaf €380.

Standard bekijken →

sgcUI Professional

Standard plus sgcCharts, sgcDashboard en sgcGauges, vanaf €529.

Professional bekijken →

sgcUI Enterprise

Alle 17 sgcUI-producten, vanaf €699.

Enterprise bekijken →

De gratis Community-editie (esegece.sgcEditors.Community op NuGet) heeft alle vijftien besturingselementen, het layoutbesturingselement en het validatieraamwerk, maar de kleurkiezer heeft geen HSV-vierkant en alfabalk, het tokenveld heeft geen aanvullijst, de bereikschuifregelaar heeft één greep, en er zijn geen dataverbonden editors, geen gegevensformulier en geen WinForms-DataSource-binding.

FunctieCommunity (gratis)Geregistreerd
Alle vijftien besturingselementen voor VCL, FireMonkey en .NET✓✓
Validatie: regels, foutweergave, samenvatting (sgcUICore)✓✓
Lookuplijsten uit ItemsSource in WinForms, WPF en Avalonia✓✓
Native tekstinvoer, ruimdenkende parsing, lokalisatie✓✓
Kalenderbereiken, limieten en uitgeschakelde dagen✓✓
Toetsenbord, DPI, thema's en headless uitvoer✓✓
NumPad voor aanraakpanelen✓✓
Schermtoetsenbord met tien indelingen✓✓
Schakelaar voor instellingen✓✓
IP-adresveld voor IPv4 en IPv6✓✓
Tijdsduurveld voor tijdsduren✓✓
Lettertypekiezer met een voorbeeld van elke familie✓✓
Selectievakjeslijst met Alles selecteren en een filter✓✓
Dubbele lijst met knoppen om te verplaatsen en te herordenen✓✓
Layoutbesturingselement met als JSON opgeslagen layouts (in Delphi Community in code aangemaakt)✓✓
Bereikschuifregelaar met twee handvatten−✓
HSV-vierkant en alfabalk van de kleurkiezer−✓
Lijst met automatisch aanvullen van de tokeninvoer−✓
Dataverbonden editors (Delphi en C++ Builder)−✓
DataSource, DataMember en DataField van WinForms−✓
Gegevensformulier uit een TDataSet, een klasse, een DataTable of een object, met validatie en Smart Paste−✓

Ondersteunde frameworks en platformen

Componenten in sgcEditors

Elk besturingselement bestaat voor VCL, FireMonkey, WinForms, WPF en Avalonia met dezelfde eigenschappen en gebeurtenissen.

BesturingselementVCL en C++ BuilderFireMonkey.NET
MaandkalenderTsgcVCLMonthCalendarTsgcFMXMonthCalendarTsgcWinFormsMonthCalendar
DatumkiezerTsgcVCLDatePickerTsgcFMXDatePickerTsgcWinFormsDatePicker
TijdkiezerTsgcVCLTimePickerTsgcFMXTimePickerTsgcWinFormsTimePicker
Datum- en tijdkiezerTsgcVCLDateTimePickerTsgcFMXDateTimePickerTsgcWinFormsDateTimePicker
BereikschuifregelaarTsgcVCLRangeSliderTsgcFMXRangeSliderTsgcWinFormsRangeSlider
KleurkiezerTsgcVCLColorPickerTsgcFMXColorPickerTsgcWinFormsColorPicker
TokeninvoerTsgcVCLTokenEditTsgcFMXTokenEditTsgcWinFormsTokenEdit
WaarderingTsgcVCLRatingTsgcFMXRatingTsgcWinFormsRating
Spin-invoerTsgcVCLSpinEditTsgcFMXSpinEditTsgcWinFormsSpinEdit
KnopveldTsgcVCLButtonEditTsgcFMXButtonEditTsgcWinFormsButtonEdit
ZoekveldTsgcVCLSearchEditTsgcFMXSearchEditTsgcWinFormsSearchEdit
MaskerveldTsgcVCLMaskEditTsgcFMXMaskEditTsgcWinFormsMaskEdit
ValutaveldTsgcVCLCurrencyEditTsgcFMXCurrencyEditTsgcWinFormsCurrencyEdit
LookupveldTsgcVCLLookupEditTsgcFMXLookupEditTsgcWinFormsLookupEdit
MemoTsgcVCLMemoTsgcFMXMemoTsgcWinFormsMemo
SchakelaarTsgcVCLToggleSwitchTsgcFMXToggleSwitchTsgcWinFormsToggleSwitch
IP-adresveldTsgcVCLIPAddressEditTsgcFMXIPAddressEditTsgcWinFormsIPAddressEdit
TijdsduurveldTsgcVCLTimeSpanEditTsgcFMXTimeSpanEditTsgcWinFormsTimeSpanEdit
LettertypekiezerTsgcVCLFontPickerTsgcFMXFontPickerTsgcWinFormsFontPicker
SelectievakjeslijstTsgcVCLCheckListBoxTsgcFMXCheckListBoxTsgcWinFormsCheckListBox
Dubbele lijstTsgcVCLDualListBoxTsgcFMXDualListBoxTsgcWinFormsDualListBox
NumPadTsgcVCLNumPad, TsgcVCLNumPadPopupTsgcFMXNumPad, TsgcFMXNumPadPopupTsgcWinFormsNumPad, TsgcWinFormsNumPadPopup
SchermtoetsenbordTsgcVCLKeyboard, TsgcVCLKeyboardPopupTsgcFMXKeyboard, TsgcFMXKeyboardPopupTsgcWinFormsKeyboard, TsgcWinFormsKeyboardPopup
LayoutbesturingselementTsgcVCLLayoutControlTsgcFMXLayoutControlTsgcWinFormsLayoutControl
GegevensformulierTsgcVCLDataFormTsgcFMXDataFormTsgcWinFormsDataForm

De .NET-kolom toont de WinForms-namen, dezelfde besturingselementen bestaan voor WPF en Avalonia met de voorvoegsels TsgcWpf en TsgcAvalonia. Niet-visuele helpers: TsgcEditorModel, TsgcEditorLocale en TsgcEditorFieldLink. De tien dataverbonden editors (TsgcVCLDBDatePicker, TsgcVCLDBTimePicker, TsgcVCLDBSpinEdit, TsgcVCLDBRating, TsgcVCLDBRangeSlider, TsgcVCLDBButtonEdit, TsgcVCLDBMaskEdit, TsgcVCLDBCurrencyEdit, TsgcVCLDBMemo en TsgcVCLDBLookupEdit, plus de FireMonkey-tegenhangers) zijn alleen Registered en bestaan voor Delphi en C++ Builder; in .NET binden de Registered WinForms-editors via DataSource, DataMember en DataField. Het layoutbesturingselement zit in elke editie, het gegevensformulier alleen in Registered. De validator en de validatiesamenvatting maken deel uit van sgcUICore: TsgcVCLValidator, TsgcFMXValidator, TsgcWinFormsValidator, TsgcWpfValidator en TsgcAvaloniaValidator.

DoelComponentPlatformen
Delphi 7 tot 13, VCLTsgcVCL-editorsWin32, en Win64 vanaf XE2
Delphi XE6 tot 13, FireMonkeyTsgcFMX-editorsWindows, macOS, iOS en Android
C++ Builder 2007 tot 13TsgcVCL- en TsgcFMX-editorsGegenereerde .hpp-headers en statische bibliotheken
Delphi 10.2 tot 13, frameworkneutraalModellen, het layoutmodel en zijn JSON, headless PNG- en SVG-uitvoerLinux64 (geen Linux-besturingselementen)
.NET Framework 4.7.2, .NET 8, 9 en 10WinForms-, WPF- en Avalonia-editorsWindows-desktop en Avalonia-doelen

Veelgestelde vragen

Ja. Elk tekstveld is een echt invoerveld van het platform, een randloze TEdit in VCL en een FMX-TEdit in FireMonkey, dus IME-compositie voor Japans, Chinees en Koreaans, het klembord, ongedaan maken, het contextmenu en schermlezers werken zonder speciale code. Zie Tekstinvoer en IME.

Ja. MinDate en MaxDate bepalen de limieten, DisabledDates somt feestdagen op, DisabledWeekDays blokkeert weekenden en OnIsDateDisabled beslist over elke andere regel. Uitgeschakelde dagen worden doorgestreept, door het toetsenbord overgeslagen en geweigerd wanneer ze in een kiezer worden getypt. De Calendar-demo blokkeert weekenden en twee feestdagen om de regels in actie te tonen.

Tien, in Delphi en C++ Builder: de datumkiezer, de tijdkiezer, het draaiveld, de beoordeling, de bereikschuifregelaar, het knopveld, het maskerveld, het valutaveld, de memo en het lookupveld, elk als VCL- en FireMonkey-besturingselement. Ze vereisen de editie Registered of Trial. In .NET binden de Registered WinForms-editors een veld via DataSource, DataMember en DataField, en in beide edities binden de besturingselementen met de databinding van WinForms, WPF en Avalonia en haalt het lookupveld zijn rijen uit ItemsSource.

Alle vijftien besturingselementen en het validatieraamwerk zijn inbegrepen. Community laat het HSV-vierkant en de alfabalk van de kleurkiezer, de aanvullijst van het tokenveld, de tweede greep van de bereikschuifregelaar en de leden DataSource, DataMember en DataField van de WinForms-editors weg. De dataverbonden Delphi-editors zijn alleen Registered. Zie Edities.

Ja. Sleep de validator van sgcUICore op het formulier, stel zijn Container in en voeg regels toe: verplicht, bereik, lengte, reguliere expressie, e-mail, vergelijking en aangepast. Hij controleert de sgcEditors-besturingselementen en de standaard edits, memo's, combo's, selectievakjes en kiezers, toont een kader, een pictogram en een optionele samenvatting, en schermlezers lezen de meldingen voor. Roep Validate aan voordat je opslaat. Hij zit in elke editie, voor VCL, FireMonkey, WinForms, WPF en Avalonia. Zie Validatie.

Ja. Elk besturingselement houdt zijn eigen kopie van FormatSettings bij, dus dag- en maandnamen, notaties, scheidingstekens en de eerste dag van de week kunnen per besturingselement verschillen. De Calendar-demo wisselt tijdens runtime tussen Engels, Duits, Spaans, Frans en Italiaans, en weeknummers volgen ISO 8601 tenzij je anders kiest.

Voor datums en tijden wel: TsgcVCLDatePicker, TsgcVCLTimePicker en TsgcVCLDateTimePicker zijn getypte invoervelden met een dropdownkalender of tijdlijst. Daarbovenop parsen ze maandnamen ruimdenkend, respecteren ze limieten en uitgeschakelde dagen, volgen ze het sgcUI-thema en worden ze getekend op de DPI van elke monitor.

Ja. C++ Builder 2007 en 2010 tot 13 gebruiken dezelfde VCL- en FireMonkey-besturingselementen via gegenereerde headers en bibliotheken, en elke Delphi-demo, inclusief DataAware, wordt ook als C++ Builder-project meegeleverd. Het tabblad Code op deze pagina toont hetzelfde formulier in Delphi, C++ Builder en C#, en elk voorbeeld is gecompileerd voordat het werd gepubliceerd.

sgcEditors help

3,000+Ontwikkelaars
20+Jaar
761+Componenten
30+API-integraties
5Platformen
Niet-goed-geld-terug-garantie van 30 dagenNiet tevreden? Vraag binnen 30 dagen na aankoop een volledige terugbetaling aan. Bekijk het terugbetalingsbeleid

Probeer sgcEditors vandaag nog

De sgcUI-proefversie bevat sgcEditors en elk ander sgcUI-product.