Delphi, C++ Builder & .NET Parte do sgcUI

sgcEditors, os Controles de Entrada Modernos para Delphi, C++ Builder & .NET

Quinze entradas de formulário com a mesma aparência em qualquer monitor e comportamento de edit nativo: um calendário com regras reais de reserva, seletores de data e hora, um controle deslizante de intervalo, um seletor de cor, chips, estrelas, um spin edit, edits com botões, de pesquisa, com máscara e de moeda, um lookup de várias colunas e um memo, além de um interruptor para configurações, um edit de endereço IP, um edit de duração, um seletor de fonte, uma lista com caixas de seleção e uma lista dupla, um NumPad e um teclado na tela para painéis touch. Digite uma data no seu idioma, verifique o formulário inteiro antes de salvar, passe para o tema escuro com uma propriedade e vincule os editores a um dataset.

Quinze controles para VCL, FireMonkey, WinForms, WPF, AvaloniaValidação de formulários em todas as ediçõesDigitação nativa com IME e área de transferênciaEdição Community gratuita para .NETIncluído no sgcUI Standard
Demo Gallery com o calendário mensal, os seletores de data, hora e data e hora, spin edit, avaliação, controle deslizante de intervalo, editor de token e seletor de cor

Entradas que os Seus Formulários Merecem

Dezesseis recursos que tornam rápido digitar datas, valores, códigos, escolhas e tags e difícil errar.

Os controles

Quinze entradas que cobrem os campos de formulários corporativos reais, cada uma disponível para VCL, FireMonkey e .NET.

A demo Gallery com os controles do sgcEditors

Os controles

Quinze entradas modernas em um só pacote

Formulários de reserva, páginas de configurações e filtros pedem sempre as mesmas entradas: um calendário, um seletor de data ou hora, um controle deslizante, uma cor, uma lista de tags, uma avaliação por estrelas, um número com unidades, um código com máscara, um preço, uma escolha em uma lista longa, uma caixa de pesquisa e um comentário. O sgcEditors entrega as quinze como uma família consistente. Cada controle existe para VCL e FireMonkey com as mesmas propriedades publicadas e os mesmos eventos, e para WinForms, WPF e Avalonia com os mesmos nomes, então o que você aprende em um controle vale para os outros. Eles compartilham um tema, uma cor de destaque e um modelo de teclado. Solte-os da página SGC Editors da paleta e eles ficam certos já na primeira execução.

  • TsgcVCLMonthCalendar, TsgcVCLDatePicker, TsgcVCLTimePicker, TsgcVCLDateTimePicker
  • TsgcVCLRangeSlider e TsgcVCLSpinEdit para números
  • TsgcVCLColorPicker, TsgcVCLTokenEdit, TsgcVCLRating
  • TsgcVCLButtonEdit, TsgcVCLSearchEdit, TsgcVCLMaskEdit, TsgcVCLCurrencyEdit, TsgcVCLLookupEdit, TsgcVCLMemo
  • Todos descendem de TsgcVCLCustomEditor
Ler o tópico da ajuda
Um calendário que segue regras reais de reserva

Os controles

Um calendário que segue regras reais de reserva

Um hotel, uma clínica ou um balcão de aluguel nunca aceita qualquer data. O calendário mensal seleciona uma data ou, com SelectionMode definido como esmRange, um intervalo de dias, e MaxRangeDays limita o tamanho desse intervalo. Os dias fora de MinDate e MaxDate, os DisabledDates listados, os DisabledWeekDays como fins de semana e qualquer dia que o seu tratador OnIsDateDisabled recuse são desenhados riscados e não podem ser escolhidos. Os números de semana ISO 8601 e as visões de mês, ano e década ajudam os usuários a saltar longe. O mesmo calendário alimenta a lista suspensa dos seletores de data, então as regras valem em todo lugar onde uma data é escolhida.

  • SelectionMode: esmSingle ou esmRange
  • MinDate, MaxDate e MaxRangeDays
  • DisabledDates, DisabledWeekDays, OnIsDateDisabled
  • ShowWeekNumbers para números de semana ISO
Ler o tópico da ajuda
Intervalos de preço e de datas com dois cursores

Os controles Somente Registrada

Intervalos de preço e de datas com dois cursores

Filtros de preço, peso ou distância ficam melhores como um intervalo em uma trilha. O controle deslizante de intervalo escolhe um valor entre Min e Max com um cursor, ou um intervalo com dois cursores em RangeMode, na horizontal ou na vertical. Ele desenha marcas, rótulos e uma dica com o valor sobre o cursor arrastado, e um clique na trilha move para lá o cursor mais próximo. Os cursores nunca se cruzam, Step ajusta os valores e MinRange mantém uma distância mínima, então o filtro nunca fica vazio por acidente. Valores e rótulos seguem o locale do controle, inclusive os separadores decimais e de milhar.

  • RangeMode com Value e EndValue
  • Min, Max, Step e MinRange
  • TickInterval, ShowLabels, ShowValueTip
  • LabelFormat ou OnFormatLabel para moedas

Community: um cursor é desenhado e editado; EndValue é mantido, mas não é exibido.

Ler o tópico da ajuda
Tags e chips com autocompletar

Os controles Somente Registrada

Tags e chips com autocompletar

Tags, destinatários e habilidades são listas, não uma linha de texto. O editor de token desenha cada entrada como um chip com botão de remover, quebra os chips em linhas e rola quando eles não cabem. Um delimitador, Enter, Tab ou a perda de foco transforma o texto digitado em um chip, e colar a, b, c gera três. OnValidateToken normaliza ou recusa cada entrada, e AllowDuplicates, CaseSensitive e MaxTokens definem as regras. Nas builds Registradas, uma lista de autocompletar sugere entradas conforme o usuário digita. AddToken, RemoveToken e Clear alteram a lista por código ao carregar ou gravar um registro.

  • Tokens guarda os chips; Delimiters encerra um
  • OnValidateToken e InvalidTokens verificam cada entrada
  • AutoCompleteItems e AutoCompleteMinChars para sugestões
  • OnTokenAdded e OnTokenRemoved informam as mudanças

Community: os chips, a validação e os limites funcionam; a lista de autocompletar nunca abre.

Ler o tópico da ajuda

Os controles Somente Registrada

Escolha qualquer cor, com alfa

Editores de tema, configurações de gráfico e designers de rótulo precisam de mais que uma paleta fixa. O seletor de cor empilha uma grade de amostras, um quadrado de saturação e valor, uma barra de matiz, uma barra de alfa e uma linha com uma pré-visualização e um campo hexadecimal, e Parts escolhe quais deles aparecem. O campo hexadecimal aceita #RGB, #RGBA, #RRGGBB e #RRGGBBAA. O seletor guarda o matiz separado da cor, então um cinza mantém o seu matiz e o quadrado nunca dá saltos enquanto o usuário arrasta. Defina a paleta da sua marca como amostras e os usuários ainda têm o seletor completo a um clique de distância.

  • Parts com ecpSwatches, ecpHSV, ecpAlpha, ecpHex
  • Swatches e SwatchColumns para a sua paleta
  • SelectedColor como um valor ARGB
  • OnChangeComplete quando o usuário solta o mouse

Community: somente amostras e hexadecimal; o quadrado HSV e a barra de alfa não são desenhados e o alfa é sempre $FF.

Ler o tópico da ajuda

Os controles

Botões, pesquisa e anotações no mesmo estilo

Muitos campos precisam de um botão ao lado do texto: procurar um arquivo, abrir uma caixa de diálogo, limpar o valor. O edit com botões coloca botões de procurar, lista suspensa, pesquisa, limpar, mais, menos, texto ou desenhados pelo proprietário nos dois lados de um edit nativo, cada um com o seu atalho, e os leitores de tela listam cada botão pelo nome e podem acioná-lo. O edit de pesquisa dispara OnSearch após uma pausa na digitação ou na hora com Enter, e oferece de novo as pesquisas anteriores em um histórico suspenso. O memo é um editor de várias linhas com tema, com texto de dica, um contador de caracteres com limite opcional e uma altura que acompanha as linhas entre MinLines e MaxLines.

  • TsgcVCLButtonEdit com Buttons e OnButtonClick
  • TsgcVCLSearchEdit com SearchDelay, History e OnSearch
  • TsgcVCLMemo com ShowCounter, MaxLength, AutoHeight
Ler o tópico da ajuda

Os controles

Entrada com máscara e de moeda que você pode compartilhar com o .NET

Telefones, CEPs, números de conta e preços precisam de um formato fixo. O edit com máscara aceita uma máscara de entrada na sintaxe EditMask do Delphi ou na sintaxe MaskedTextBox do .NET, então uma mesma máscara se comporta igual em um aplicativo Delphi e em um .NET: os literais ficam fixos, cada posição aceita só o seu tipo de caractere, e Text devolve o valor com ou sem os literais. O edit de moeda guarda um valor Currency exato, um decimal no .NET, sem ponto flutuante. Ele mostra o formato de moeda completo da localidade enquanto não tem o foco, e um número agrupado com o símbolo ou o código ISO enquanto o usuário digita. MinValue, MaxValue e AllowNegative mantêm o valor no intervalo.

  • EditMask e MaskSyntax: emxDelphi ou emxDotNet
  • IsComplete, EditText e SaveLiterals
  • Value, Decimals, CurrencyCode, SymbolMode
  • PositivePattern e NegativePattern
Ler o tópico da ajuda

Os controles

Escolha uma linha de uma lista de várias colunas

Clientes, produtos e países são escolhidos pelo nome, mas guardados pela chave. O edit de lookup abre uma lista suspensa de várias colunas com uma linha de cabeçalho opcional e a filtra enquanto o usuário digita. O edit mostra a coluna de exibição e KeyValue guarda a chave, como o código de um país por trás do nome. As linhas vêm de Items, uma linha por item com as células separadas por |, ou de OnGetItems para uma pesquisa em um servidor, e OnNotInList decide o que acontece com um texto que não corresponde a nenhuma linha. No .NET as linhas também podem vir de qualquer coleção por ItemsSource, DisplayMember e ValueMember, no WinForms, WPF e Avalonia.

  • Columns com Title, Width e Alignment
  • KeyColumn, DisplayColumn e KeyValue
  • ShowHeader, MatchMode, DropDownRows
  • .NET: ItemsSource, SelectedValue em todas as edições
Ler o tópico da ajuda

Os controles

Um interruptor para configurações e opções

Páginas de configurações e painéis de opções ligam e desligam recursos. O interruptor é a forma moderna da caixa de seleção: uma trilha arredondada com um botão redondo que desliza para o novo estado, um texto opcional de cada lado e o texto On e Off dentro da trilha, se você quiser. Ele é desenhado de forma personalizada, usa a cor de destaque do tema enquanto está ligado e escala com o DPI. Uma alteração do usuário passa primeiro por OnChanging, de modo que uma regra do seu formulário pode recusá-la, e OnChange é executado após cada alteração, feita pelo usuário ou pelo código.

  • TsgcVCLToggleSwitch e TsgcFMXToggleSwitch, e no .NET TsgcWinFormsToggleSwitch, TsgcWpfToggleSwitch e TsgcAvaloniaToggleSwitch
  • Checked, Caption, CaptionPosition, ShowText com OnText e OffText, ReadOnly e Animated
  • TrackOnColor, TrackOffColor e ThumbColor, ou as cores do tema, e SwitchWidth e SwitchHeight para o tamanho da trilha
  • OnChanging cancela uma alteração do usuário com Allow, OnChange é disparado após cada alteração e Toggle muda o estado como o usuário faria
  • Clique, arrasto do botão, Espaço, Esquerda e Direita, formulários da direita para a esquerda e uma caixa de seleção com o padrão Toggle para leitores de tela
  • No WPF e no Avalonia, Checked tem vínculo bidirecional por padrão, e no WinForms dispara CheckedChanged para o vínculo de dados

O interruptor está em todas as edições, inclusive na Community.

Ler o tópico da ajuda

Os controles

Um edit de endereço IP para IPv4 e IPv6

Configurações de rede, instalação de dispositivos e regras de firewall pedem endereços. No IPv4, o edit de endereço IP mostra quatro campos de octeto com separadores de ponto e passa para o campo seguinte enquanto o usuário digita, de modo que um endereço é tão rápido de digitar quanto em um edit simples e fica sempre bem formado: um valor acima de 255 é limitado, e os campos vazios viram 0 quando o foco sai do controle. No IPv6, ele é um único campo de texto que aceita dígitos hexadecimais, dois-pontos e pontos, valida o texto e o grava na forma canônica da RFC 5952 quando o foco sai, de modo que 2001:DB8:0:0:0:0:2:1 vira 2001:db8::2:1.

  • TsgcVCLIPAddressEdit e TsgcFMXIPAddressEdit, e no .NET TsgcWinFormsIPAddressEdit, TsgcWpfIPAddressEdit e TsgcAvaloniaIPAddressEdit
  • Mode escolhe IPv4 ou IPv6, Address é o valor e Octets lê ou define um campo de um endereço IPv4
  • IsValid informa se o endereço está completo, e com Required um endereço vazio ou incompleto mostra a moldura de erro do tema
  • Um ponto ou um terceiro dígito passa para o campo seguinte, Backspace no início de um campo volta, Esquerda e Direita cruzam os limites dos campos, e um endereço colado preenche todos os campos
  • OnChange dispara após cada alteração, Clear esvazia o endereço, e os leitores de tela veem um edit com o padrão Value
  • No WPF e no Avalonia, Address tem vínculo bidirecional por padrão, e no WinForms dispara AddressChanged para o vínculo de dados

O edit de endereço IP está em todas as edições, inclusive na Community.

Ler o tópico da ajuda

Os controles

Um edit de duração para intervalos de tempo

Um timeout, um intervalo ou um tempo de execução é uma duração, não uma hora do dia. O edit de duração a mostra em segmentos, dias, horas, minutos, segundos e milissegundos, e o usuário edita um segmento por vez digitando, com as setas, a roda do mouse ou os botões de incremento. Um passo transborda para o segmento seguinte, de modo que 59 segundos mais um é um minuto, e o segmento mais alto exibido não tem limite, então sem dias 50 horas aparecem como 50:00:00.

  • TsgcVCLTimeSpanEdit e TsgcFMXTimeSpanEdit, e no .NET TsgcWinFormsTimeSpanEdit, TsgcWpfTimeSpanEdit e TsgcAvaloniaTimeSpanEdit
  • Value em milissegundos no Delphi e um TimeSpan no .NET, com as partes Days, Hours, Minutes, Seconds e Milliseconds
  • Segments escolhe os segmentos exibidos e DisplayFormat grava o valor como relógio, 1.02:30:05.250, ou com unidades, 1d 2h 30m 5s 250ms
  • MinValue e MaxValue limitam o valor, AllowNegative aceita um sinal de menos inicial, e Increment e ShowButtons definem o passo e os botões de incremento
  • Seta para cima e para baixo alteram o segmento com foco, Page Up e Page Down o alteram de dez em dez, Esquerda, Direita e Tab se movem entre os segmentos, e os leitores de tela veem um spinner com o padrão RangeValue em segundos
  • No WPF e no Avalonia, Value tem vínculo bidirecional por padrão, e no WinForms dispara ValueChanged para o vínculo de dados

O edit de duração está em todas as edições, inclusive na Community.

Ler o tópico da ajuda

Os controles

Um seletor de fonte com visualização de cada família

Designers de relatórios, editores de etiquetas e páginas de configurações deixam o usuário escolher uma fonte. O seletor de fonte é um edit com um botão de lista suspensa cuja lista desenha cada família na sua própria fonte. Digitar filtra as famílias, as escolhidas mais recentemente aparecem primeiro acima de um separador, e um filtro mantém apenas as famílias de largura fixa, para um editor de código ou um terminal. A lista vem da plataforma até que o aplicativo a preencha.

  • TsgcVCLFontPicker e TsgcFMXFontPicker, e no .NET TsgcWinFormsFontPicker, TsgcWpfFontPicker e TsgcAvaloniaFontPicker
  • FontName é o valor, Fonts a lista de famílias e RefreshFonts a recarrega depois que uma fonte foi instalada
  • ShowPreview desenha cada nome na sua própria fonte e PreviewText acrescenta um texto de exemplo depois do nome
  • RecentCount e RecentFonts guardam as famílias escolhidas recentemente, para o aplicativo salvar e carregar de novo
  • FontFilter mantém as famílias de largura fixa, e Alt+Seta para baixo abre a lista, Enter ou um clique escolhe uma família e Esc a fecha
  • O seletor de fonte do Delphi desenha as fontes da visualização no Windows, no VCL e no FireMonkey; nas outras plataformas do FireMonkey os nomes são listados na fonte do tema
  • No WPF e no Avalonia, FontName tem vínculo bidirecional por padrão

O seletor de fonte está em todas as edições, inclusive na Community.

Ler o tópico da ajuda

Os controles

Uma lista com caixas de seleção para listas longas de opções

As colunas de uma grade, os filtros de um relatório ou os módulos de uma licença são listas longas de opções. A lista com caixas de seleção é uma lista com rolagem com uma caixa de seleção em cada linha, desmarcada, marcada ou acinzentada, e um indicador de habilitado por item. Uma linha de cabeçalho opcional Selecionar tudo marca ou desmarca todos os itens habilitados, e uma caixa de filtro opcional oculta as linhas que não contêm o texto digitado sem alterar o estado delas. Apenas as linhas visíveis são desenhadas, de modo que uma lista de 10000 itens continua rápida.

  • TsgcVCLCheckListBox e TsgcFMXCheckListBox, e no .NET TsgcWinFormsCheckListBox, TsgcWpfCheckListBox e TsgcAvaloniaCheckListBox
  • Items com Checked, State e ItemEnabled por item, e AllowGrayed para o terceiro estado
  • ShowCheckAll mostra a linha Selecionar tudo de três estados e ShowFilter a caixa de filtro
  • CheckAll, UncheckAll e CheckedCount, e OnClickCheck antes de OnChange para uma alteração do usuário
  • Espaço alterna a linha com foco, Ctrl+A marca todos os itens, uma letra salta para o próximo item que começa com ela, e os leitores de tela veem itens de lista com o padrão Toggle
  • No .NET, CheckedItems e CheckedIndices são listas somente leitura para o vínculo, e o evento ItemCheck vem antes de Change

A lista com caixas de seleção está em todas as edições, inclusive na Community.

Ler o tópico da ajuda

Os controles

Uma lista dupla para escolher e ordenar itens

Escolher as colunas de um relatório, os membros de um grupo ou as etapas de um processo significa mover itens de uma lista para outra. A lista dupla desenha a lista Disponíveis à esquerda e a lista Selecionados à direita, com botões entre elas que movem as linhas selecionadas ou todas as linhas, e botões Subir e Descer no lado externo que reordenam a lista Selecionados. Um clique duplo ou um arrasto move um item para a outra lista, e um arrasto dentro da lista Selecionados a reordena.

  • TsgcVCLDualListBox e TsgcFMXDualListBox, e no .NET TsgcWinFormsDualListBox, TsgcWpfDualListBox e TsgcAvaloniaDualListBox
  • AvailableItems e SelectedItems, AvailableCaption e SelectedCaption, ShowCaptions e ShowReorderButtons
  • SortAvailable insere em ordem os itens devolvidos, ShowFilter acrescenta uma caixa de filtro sobre cada lista, e ReadOnly mantém a seleção e recusa os movimentos
  • MoveToSelected, MoveAllToSelected, MoveToAvailable, MoveAllToAvailable, MoveUp e MoveDown fazem o que os botões fazem
  • OnMoving pode manter um item onde está, e OnChange dispara uma vez por operação
  • Clique, Ctrl+clique, Shift+clique e Ctrl+A selecionam, Tab vai de uma lista para a outra, Ctrl+Direita e Ctrl+Esquerda movem, Ctrl+Cima e Ctrl+Baixo reordenam, e a exibição é espelhada em formulários da direita para a esquerda
  • No WPF e no Avalonia, SelectedItems tem vínculo bidirecional por padrão, e no WinForms dispara SelectedItemsChanged

A lista dupla está em todas as edições, inclusive na Community.

Ler o tópico da ajuda

Digitação, idioma e dados

Entrada rápida para quem usa o teclado, uma verificação de cada campo antes de salvar, o idioma certo para cada usuário e um vínculo direto com os seus datasets.

Digitação, idioma e dados

Digitação de verdade, não só cliques

A equipe de entrada de dados digita datas, não clica em calendários. Todo campo de texto do sgcEditors é um controle de edição real da plataforma, então a composição IME para japonês, chinês e coreano, a área de transferência, o desfazer, o menu de contexto e os leitores de tela funcionam. A leitura é tolerante: barras, hifens, pontos, dois-pontos, vírgulas ou espaços separam os campos, os nomes de meses e dias do locale são entendidos e anos de dois dígitos são ajustados. Cima e Baixo giram o segmento sob o cursor, e o texto que não puder ser lido dispara OnParseError.

  • DisplayFormat com os segmentos d, m, y, h, n, s
  • OnParseError para aceitar ou recusar entradas estranhas
  • AllowEmpty e TextHint para campos opcionais
  • O spin edit aceita tanto . quanto , como separador decimal
Ler o tópico da ajuda

Digitação, idioma e dados

Um NumPad para painéis touch

Um painel touch no chão de fábrica não tem teclado, e o teclado do sistema cobre metade da tela. O NumPad digita um número com teclas grandes o bastante para um dedo ou uma luva. Solte um pad fixado no formulário e ele escreve no controle que tem o foco, ou anexe um pad suspenso a um controle e um toque no controle abre o pad sob ele. O controle de destino não precisa de nenhuma alteração: o pad lê a sua faixa e as suas casas decimais e grava o valor como uma alteração do usuário, de modo que o arredondamento, os limites e o OnChange do destino rodam como se o usuário tivesse digitado.

  • TsgcVCLNumPad fixado e TsgcVCLNumPadPopup como lista suspensa, também para FireMonkey e no .NET
  • Digita no spin edit, no edit de moeda, em um edit padrão e nos gauges de botão giratório e de controle deslizante do sgcGauges
  • Associate escolhe o destino, ou o pad acompanha o controle com foco
  • Um display com o número digitado e uma linha de limites como Min 0 Max 120

O NumPad está em todas as edições, inclusive a Community. Ele faz parte do Pacote HMI do sgcUI para telas de operador.

Ler o tópico da ajuda

Digitação, idioma e dados

Um teclado na tela para quiosques e telas touch

Um quiosque, um terminal de autoatendimento ou um painel de operador precisa de nomes, códigos e anotações, além de números. O teclado na tela é um teclado completo construído sobre o mesmo caminho de entrada do NumPad. Fixe-o no formulário e ele digita no controle que tem o foco, ou anexe um teclado suspenso que abre sob um edit quando o edit recebe o foco. O teclado nunca toma o foco, então o cursor e a seleção do destino ficam onde estão, e um edit padrão, um memo e os controles do sgcEditors não precisam de nenhuma alteração.

  • TsgcVCLKeyboard fixado e TsgcVCLKeyboardPopup como lista suspensa, também para FireMonkey e no .NET para WinForms, WPF e Avalonia
  • Associate escolhe o destino, ou o teclado acompanha o foco. AutoPopup, AutoPopupAll, PopupPosition e CloseOnEnter controlam a lista suspensa
  • Páginas de letras, de símbolos e numérica, com Shift, Caps Lock, AltGr e teclas mortas para letras acentuadas
  • Dez layouts integrados (en-US, en-GB, es-ES, fr-FR, de-DE, it-IT, pt-BR, nl-NL, pl-PL e tr-TR), seus próprios layouts com sgcKeyboardRegisterLayout e uma tecla de layout que percorre Layouts
  • OnKeyText altera ou cancela o texto antes de ele ser escrito, e OnEnterKey roda depois do Enter
  • Temas, formulários da direita para a esquerda e teclas que os leitores de tela anunciam

O teclado na tela está em todas as edições, inclusive a Community. Ele faz parte do Pacote HMI do sgcUI para painéis de operador e quiosques.

Leia o tópico da ajuda
Cada controle fala o idioma do usuário

Digitação, idioma e dados

Cada controle fala o idioma do usuário

Equipes internacionais e produtos multilíngues precisam de datas que soem naturais para cada usuário. Cada controle tem o seu próprio FormatSettings, preenchido a partir do locale do usuário e alterável em tempo de execução, então dois controles no mesmo formulário podem até usar dois locales. O calendário e os seletores tiram dele os nomes de dias e meses, os formatos de data e hora, os textos de AM e PM e os separadores. FirstDayOfWeek e WeekNumbering seguem o locale ou a sua escolha, e os números usam os separadores decimais e de milhar corretos. As unidades, as dicas e os nomes acessíveis continuam sendo propriedades suas, então você os traduz junto com o resto do formulário.

  • FormatSettings por controle
  • FirstDayOfWeek: efdLocale ou efdMonday forçado
  • WeekNumbering: ewnISO8601 por padrão
  • TsgcEditorLocale para modelos headless
  • Da direita para a esquerda para árabe e hebraico: os botões de incremento, de lista suspensa e de limpar passam para o outro lado, sliders, avaliações e o calendário correm a partir da direita, e o campo de edição é lido da direita para a esquerda
Ler o tópico da ajuda
Versões data-aware para os seus formulários

Digitação, idioma e dados Somente Registrada

Versões data-aware para os seus formulários

A maioria dos formulários corporativos em Delphi fica sobre um TDataSet, e ligar cada editor à mão é repetitivo. Dez controles data-aware se vinculam direto a um campo por DataSource e DataField: um seletor de data, um seletor de hora, um spin edit, uma avaliação, um controle deslizante de intervalo cujo segundo cursor se vincula a EndDataField, um edit com botões, um edit com máscara que assume o EditMask do seu campo, um edit de moeda, um memo e um edit de lookup que preenche a sua lista de várias colunas a partir de um segundo dataset por ListSource, KeyField e ListField, como o TDBLookupComboBox. Campos nulos aparecem vazios quando AllowEmpty está ativo, e um campo obrigatório informa um valor vazio ao validador. Eles se vinculam por TsgcEditorFieldLink, que usa apenas a unit DB, então as versões FireMonkey não precisam de LiveBindings. No .NET os editores WinForms vinculam um campo por DataSource, DataMember e DataField com um BindingSource, um DataTable, um DataView ou uma List, e as propriedades de valor do WPF e do Avalonia se vinculam nos dois sentidos. Solte-os em um formulário existente e a lógica de dataset que você já tem continua funcionando sem mudanças.

  • TsgcVCLDBDatePicker, TsgcVCLDBTimePicker, TsgcVCLDBSpinEdit
  • TsgcVCLDBRating e TsgcVCLDBRangeSlider
  • TsgcVCLDBButtonEdit, TsgcVCLDBMaskEdit, TsgcVCLDBCurrencyEdit, TsgcVCLDBMemo, TsgcVCLDBLookupEdit
  • DataSource, DataField, EndDataField; listas de lookup por ListSource, KeyField, ListField
  • WinForms: DataSource, DataMember, DataField; WPF e Avalonia: as propriedades de valor se vinculam nos dois sentidos

Nos pacotes .NET Community, os editores WinForms não têm DataSource, DataMember e DataField; o vínculo no WPF e no Avalonia e o ItemsSource do edit de lookup funcionam nas duas edições.

Ler o tópico da ajuda

Digitação, idioma e dados

Verifique o formulário inteiro antes de salvar

Um formulário só está pronto quando todos os campos estão certos. O validador do sgcUICore verifica os controles de um formulário contra regras: obrigatório, intervalo, tamanho, expressão regular, e-mail, comparação com outro campo e o seu próprio código. Ele encontra os controles como o Smart Paste faz, então verifica os controles do sgcEditors e também os edits, memos, combos, caixas de seleção e seletores padrão, no VCL, FireMonkey, WinForms, WPF e Avalonia. O edit com máscara informa um valor incompleto e o edit de lookup um texto que não está na lista, sem nenhuma regra. Os erros aparecem como uma moldura na cor de erro do tema, um ícone com a mensagem como dica e uma lista de resumo opcional, e os leitores de tela leem a mensagem junto com o campo. No .NET o validador também mostra os erros da sua camada de dados: IDataErrorInfo e INotifyDataErrorInfo no WinForms e no WPF, os erros de validação de dados no Avalonia.

  • TsgcVCLValidator, TsgcFMXValidator, TsgcWinFormsValidator, TsgcWpfValidator, TsgcAvaloniaValidator
  • Regras uvrRequired, uvrRange, uvrLength, uvrRegex, uvrEmail, uvrCompare, uvrCustom
  • Trigger: uvtExit por padrão, uvtChange ou uvtManual; Validate antes de salvar
  • TsgcVCLValidationSummary lista os erros e foca o campo com um clique

Em todas as edições, inclusive na Community. As expressões regulares correspondem aos mesmos textos no Delphi 7 a 13 e no .NET.

Ler o tópico da ajuda

Digitação, idioma e dados

Monte um formulário ou gere-o a partir dos seus dados

O controle de layout organiza os controles de um formulário, do sgcEditors e padrão, em grupos, grupos com abas e colunas, com os rótulos alinhados a uma só largura, divisores que o usuário pode arrastar e layouts da direita para a esquerda, e SaveLayout guarda a disposição como JSON. O formulário de dados é construído sobre ele. Aponte-o para um TDataSet, ou vincule um objeto de uma classe sua, e ele cria um controle do sgcEditors por campo, as regras de validação de cada campo, um resumo dos erros e um navegador para percorrer, incluir, editar, excluir e gravar registros. O Smart Paste preenche o registro inteiro a partir de um texto colado, como uma assinatura de e-mail ou um bloco de endereço, e marca os campos que preencheu. No .NET, os formulários de dados do WinForms, WPF e Avalonia aceitam um DataTable, uma lista ou um objeto.

  • TsgcVCLLayoutControl, TsgcFMXLayoutControl; SaveLayout e LoadLayout
  • TsgcVCLDataForm, TsgcFMXDataForm, TsgcWinFormsDataForm, TsgcWpfDataForm, TsgcAvaloniaDataForm
  • Fields: título, tipo, obrigatório, limites, grupo, aba e ordem de cada campo; BindObject para uma classe
  • SmartPasteFromClipboard, SmartPasteUndo e um botão Smart Paste no navegador

O controle de layout está em todas as edições, inclusive na Community; o Delphi Community não tem pacote de design para o sgcEditors, então nele é criado em código. O formulário de dados, as suas regras de validação e o seu Smart Paste são apenas da edição Registrada.

Ler o tópico da ajuda

Teclado, DPI e temas

Os detalhes que os revisores verificam: sem precisar do mouse, nítido em todo monitor e uma aparência que combina com a sua aplicação.

Nítido em todo monitor

Teclado, DPI e temas

Nítido em todo monitor

Notebooks a 150 por cento ao lado de monitores externos a 100 por cento são normais hoje, e entradas borradas passam uma imagem barata. O sgcEditors organiza todo controle em pixels lógicos a 96 DPI e o desenha na escala da tela, sem nada a fazer no seu código. Quando um formulário VCL passa para um monitor com outro DPI, o edit interno e a sua fonte escalam com o controle, e uma lista suspensa é desenhada no DPI do monitor em que abre. Os rasters do FireMonkey seguem a escala da cena para Retina e Android.

  • Layout em pixels lógicos, desenhado na escala da tela
  • Os edits internos se reescalam em WM_DPICHANGED
  • As listas suspensas usam o DPI do próprio monitor
  • SaveToPNG recebe uma escala para imagens nítidas
Ler o tópico da ajuda
Amigável ao teclado e a leitores de tela

Teclado, DPI e temas

Amigável ao teclado e a leitores de tela

Nenhuma função do sgcEditors exige o mouse. Os controles desenhados recebem o foco por conta própria e os controles de texto o repassam ao seu edit interno, e um controle em foco desenha um anel de foco de 2 pixels na cor de destaque. No calendário, as setas avançam um dia ou uma semana e pulam os dias desabilitados, PageUp e PageDown movem um mês e Shift estende um intervalo. Nos seletores, F4 ou Alt+Baixo abre a lista suspensa e Escape restaura o valor. O spin edit avança com Cima, Baixo, PageUp e PageDown.

  • F4 ou Alt+Baixo abre toda lista suspensa
  • Ctrl+Cima afasta o calendário para anos e décadas
  • Increment e LargeIncrement para o spin edit
  • Os edits nativos mantêm os leitores de tela funcionando
Ler o tópico da ajuda
Claro e escuro com uma propriedade

Teclado, DPI e temas

Claro e escuro com uma propriedade

Os formulários parecem acabados quando toda entrada segue o mesmo tema. Cada controle tem um Theme, um AccentColor e um TextStyle, e as cores da moldura, da passagem do mouse, do estado pressionado, da seleção e do estado desabilitado são derivadas deles, então uma propriedade muda a aparência inteira. Os tokens são os mesmos que todo produto sgcUI usa, então editores colocados em um bloco do sgcDashboard ou sob uma sgcToolbar combinam sem trabalho extra. Um controle desabilitado se mistura ao fundo sozinho. Troque o tema em tempo de execução e todo editor se redesenha, pronto para uma configuração de modo escuro.

  • Theme: utDefault (padrão, segue o tema da aplicação), utLight ou utDark
  • AccentColor para seleção, cursores, preenchimento e anel de foco
  • TextStyle para tamanho, negrito e cor
  • Os mesmos tokens de tema de toda a suíte sgcUI
Ler o tópico da ajuda

Veja o sgcEditors em ação

sgcEditors dentro das demos da suíte sgcUI: aplicações completas que rodam offline com dados simulados integrados.

Quem cria com o sgcEditors

Formulários de reserva

Um formulário de reserva precisa de um intervalo de estadia que respeite os dias fechados, um número de hóspedes, um horário de chegada e talvez uma avaliação da última visita. O calendário mensal aplica MinDate, MaxRangeDays e os dias desabilitados, o spin edit conta os hóspedes, o seletor de hora aceita horários digitados e a avaliação coleta o feedback, tudo em um só tema. O demo BookingForm monta uma reserva de hotel com sete editores e um resumo ao vivo.

  • Intervalos de calendário
  • Spin edit
  • Avaliação
Execute o demo BookingForm

Entrada de dados em TDataSet

Aplicações corporativas editam registros o dia todo. Os dez editores data-aware se vinculam a um campo do TDataSet por DataSource e DataField, o controle deslizante de intervalo vincula as duas extremidades e os campos nulos aparecem vazios. Combinados com a digitação real pelo teclado e a leitura tolerante, os operadores digitam valores rapidamente e o dataset recebe dados limpos. O demo DataAware coloca os dez editores em um TClientDataSet ao lado de um TDBGrid e de um TDBNavigator.

  • Editores data-aware
  • Digitação
  • Teclado
Execute o demo DataAware

Aplicações internacionais de agendamento

Ferramentas de planejamento usadas em vários países devem mostrar o início de semana, os números de semana e os nomes de meses corretos para cada usuário. Cada controle carrega o seu próprio FormatSettings, então um formulário pode mostrar um calendário alemão ao lado de um inglês, e FirstDayOfWeek e WeekNumbering seguem o locale ou a sua regra. O demo Calendar alterna entre inglês, alemão, espanhol, francês e italiano com um intervalo limitado a 14 dias.

  • Localização
  • Números de semana
  • Dias desabilitados
Execute o demo Calendar

A Feedback Form in a Few Lines

The same API in Delphi, C++ Builder and C#: a rating, a range slider and a token edit, all reporting through OnChange.

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

Validar um formulário de pedido

Um edit de lookup, um edit com máscara e um edit de moeda verificados pelo validador do sgcUICore. Chame Validate quando o usuário salvar: ele mostra todos os erros e foca o primeiro campo inválido.

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

Gere um formulário de clientes a partir de um dataset

Um TsgcVCLDataForm sobre um dataset aberto cria os editores, as regras de validação e o navegador. Defina o tipo e o grupo de um campo, reconstrua, e o botão Smart Paste do navegador preenche o registro a partir da área de transferência.

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;

Execute os demos do sgcEditors

Gallery, Calendar, BookingForm, Validation e DataAware acompanham o VCL e o C++ Builder, além de GalleryFMX e ValidationFMX para FireMonkey; a edição .NET tem Gallery e Validation para WinForms, WPF e Avalonia, além de BookingForm, BindingWpf e DataAwareWinForms.

Calendar

Calendar

Um intervalo de até 14 dias, números de semana, fins de semana e feriados desabilitados, e uma troca de locale entre inglês, alemão, espanhol, francês e italiano.

BookingForm

Uma reserva de hotel com um resumo ao vivo da estadia, dos hóspedes e do horário de chegada, um lookup de países, um telefone com máscara e um validador que confere os campos do hóspede antes da reserva. Mostra como os controles trabalham juntos em um formulário real.

DataAware

Somente Registrada DataAware

Os dez editores data-aware em um TClientDataSet com um TDBGrid e um TDBNavigator, com um edit de lookup preenchido a partir de um segundo dataset e um validador para os campos obrigatórios. Os controles data-aware exigem a edição Registrada ou de Avaliação.

GalleryFMX

A galeria construída com os editores FireMonkey, para Windows e Android, com as mesmas propriedades e eventos dos controles VCL.

Validação

Todos os tipos de regra em controles padrão e do sgcEditors, os três gatilhos, a exibição com moldura e ícone e a lista de resumo. O ValidationFMX faz o mesmo no FireMonkey, e a edição .NET tem Validation, ValidationWpf e ValidationAvalonia.

Demos compilados

Executáveis prontos para rodar de todos os produtos sgcUI, sem nada para instalar.

Baixar sgcUI_bin.zip →

Guia Primeiros Passos

Cinco demos QuickStart para Delphi (VCL) acompanham o produto em Demos\Editors\Delphi\00.QuickStart. O guia em PDF as explica passo a passo: os primeiros editores em um formulário, leitura e escrita de valores, temas, validação, e uma aplicação de contatos construída sobre um formulário de dados.

Baixar o guia (PDF, em inglês) →

Onde o sgcEditors está incluído

O sgcEditors está em todas as edições do sgcUI e também é vendido separadamente. O sgcEditors também está incluído no pacote All-Access.

sgcEditors pacote individual

€199 / desenvolvedor, código-fonte completo, 1 ano de atualizações.

Comprar o sgcEditors → Ver preços →

sgcUI Standard

sgcEditors, sgcGrid, sgcNavigation e sgcToolbar, a partir de €380.

Ver Standard →

sgcUI Professional

Standard mais sgcCharts, sgcDashboard e sgcGauges, a partir de €529.

Ver Professional →

sgcUI Enterprise

Todos os 17 produtos sgcUI, a partir de €699.

Ver Enterprise →

A edição Community gratuita (esegece.sgcEditors.Community no NuGet) tem os quinze controles, o controle de layout e o framework de validação, mas o seletor de cor não tem o quadrado HSV nem a barra de alfa, o editor de token não tem a lista de autocompletar, o controle deslizante de intervalo tem um cursor e não há editores data-aware, formulário de dados nem vínculo DataSource no WinForms.

RecursoCommunity (gratuita)Registrada
Os quinze controles para VCL, FireMonkey e .NET✓✓
Validação: regras, exibição de erros, resumo (sgcUICore)✓✓
Listas do edit de lookup a partir de ItemsSource no WinForms, WPF e Avalonia✓✓
Digitação nativa, leitura tolerante, localização✓✓
Intervalos de calendário, limites e dias desabilitados✓✓
Teclado, DPI, temas e saída headless✓✓
NumPad para painéis touch✓✓
Teclado na tela com dez layouts✓✓
Interruptor para configurações✓✓
Edit de endereço IP para IPv4 e IPv6✓✓
Edit de duração para intervalos de tempo✓✓
Seletor de fonte com visualização de cada família✓✓
Lista com caixas de seleção, Selecionar tudo e filtro✓✓
Lista dupla com botões de mover e reordenar✓✓
Controle de layout com layouts salvos como JSON (criado em código no Delphi Community)✓✓
Controle deslizante de intervalo com dois cursores−✓
Quadrado HSV e barra de alfa do seletor de cor−✓
Lista de autocompletar do editor de token−✓
Editores data-aware (Delphi e C++ Builder)−✓
DataSource, DataMember e DataField do WinForms−✓
Formulário de dados a partir de um TDataSet, uma classe, um DataTable ou um objeto, com validação e Smart Paste−✓

Frameworks e plataformas suportados

Componentes do sgcEditors

Todo controle existe para VCL, FireMonkey, WinForms, WPF e Avalonia com as mesmas propriedades e eventos.

ControleVCL e C++ BuilderFireMonkey.NET
Calendário mensalTsgcVCLMonthCalendarTsgcFMXMonthCalendarTsgcWinFormsMonthCalendar
Seletor de dataTsgcVCLDatePickerTsgcFMXDatePickerTsgcWinFormsDatePicker
Seletor de horaTsgcVCLTimePickerTsgcFMXTimePickerTsgcWinFormsTimePicker
Seletor de data e horaTsgcVCLDateTimePickerTsgcFMXDateTimePickerTsgcWinFormsDateTimePicker
Controle deslizante de intervaloTsgcVCLRangeSliderTsgcFMXRangeSliderTsgcWinFormsRangeSlider
Seletor de corTsgcVCLColorPickerTsgcFMXColorPickerTsgcWinFormsColorPicker
Editor de tokenTsgcVCLTokenEditTsgcFMXTokenEditTsgcWinFormsTokenEdit
AvaliaçãoTsgcVCLRatingTsgcFMXRatingTsgcWinFormsRating
Spin editTsgcVCLSpinEditTsgcFMXSpinEditTsgcWinFormsSpinEdit
Edit com botõesTsgcVCLButtonEditTsgcFMXButtonEditTsgcWinFormsButtonEdit
Edit de pesquisaTsgcVCLSearchEditTsgcFMXSearchEditTsgcWinFormsSearchEdit
Edit com máscaraTsgcVCLMaskEditTsgcFMXMaskEditTsgcWinFormsMaskEdit
Edit de moedaTsgcVCLCurrencyEditTsgcFMXCurrencyEditTsgcWinFormsCurrencyEdit
Edit de lookupTsgcVCLLookupEditTsgcFMXLookupEditTsgcWinFormsLookupEdit
MemoTsgcVCLMemoTsgcFMXMemoTsgcWinFormsMemo
InterruptorTsgcVCLToggleSwitchTsgcFMXToggleSwitchTsgcWinFormsToggleSwitch
Edit de endereço IPTsgcVCLIPAddressEditTsgcFMXIPAddressEditTsgcWinFormsIPAddressEdit
Edit de duraçãoTsgcVCLTimeSpanEditTsgcFMXTimeSpanEditTsgcWinFormsTimeSpanEdit
Seletor de fonteTsgcVCLFontPickerTsgcFMXFontPickerTsgcWinFormsFontPicker
Lista com caixas de seleçãoTsgcVCLCheckListBoxTsgcFMXCheckListBoxTsgcWinFormsCheckListBox
Lista duplaTsgcVCLDualListBoxTsgcFMXDualListBoxTsgcWinFormsDualListBox
NumPadTsgcVCLNumPad, TsgcVCLNumPadPopupTsgcFMXNumPad, TsgcFMXNumPadPopupTsgcWinFormsNumPad, TsgcWinFormsNumPadPopup
Teclado na telaTsgcVCLKeyboard, TsgcVCLKeyboardPopupTsgcFMXKeyboard, TsgcFMXKeyboardPopupTsgcWinFormsKeyboard, TsgcWinFormsKeyboardPopup
Controle de layoutTsgcVCLLayoutControlTsgcFMXLayoutControlTsgcWinFormsLayoutControl
Formulário de dadosTsgcVCLDataFormTsgcFMXDataFormTsgcWinFormsDataForm

A coluna .NET mostra os nomes do WinForms; os mesmos controles existem para WPF e Avalonia com os prefixos TsgcWpf e TsgcAvalonia. Auxiliares não visuais: TsgcEditorModel, TsgcEditorLocale e TsgcEditorFieldLink. Os dez editores data-aware (TsgcVCLDBDatePicker, TsgcVCLDBTimePicker, TsgcVCLDBSpinEdit, TsgcVCLDBRating, TsgcVCLDBRangeSlider, TsgcVCLDBButtonEdit, TsgcVCLDBMaskEdit, TsgcVCLDBCurrencyEdit, TsgcVCLDBMemo e TsgcVCLDBLookupEdit, além dos gêmeos FireMonkey) são somente da edição Registrada e existem para Delphi e C++ Builder; no .NET os editores WinForms da edição Registrada se vinculam por DataSource, DataMember e DataField. O controle de layout está em todas as edições, e o formulário de dados é apenas da edição Registrada. O validador e o resumo de validação fazem parte do sgcUICore: TsgcVCLValidator, TsgcFMXValidator, TsgcWinFormsValidator, TsgcWpfValidator e TsgcAvaloniaValidator.

AlvoComponentePlataformas
Delphi 7 a 13, VCLEditores TsgcVCLWin32, e Win64 a partir do XE2
Delphi XE6 a 13, FireMonkeyEditores TsgcFMXWindows, macOS, iOS e Android
C++ Builder 2007 a 13Editores TsgcVCL e TsgcFMXHeaders .hpp gerados e bibliotecas estáticas
Delphi 10.2 a 13, independente de frameworkModelos, o modelo de layout e seu JSON, saída headless em PNG e SVGLinux64 (sem controles para Linux)
.NET Framework 4.7.2, .NET 8, 9 e 10Editores WinForms, WPF e AvaloniaDesktop Windows e alvos Avalonia

Perguntas frequentes

Sim. Todo campo de texto é um edit real da plataforma, um TEdit sem borda no VCL e um TEdit FMX no FireMonkey, então a composição IME para japonês, chinês e coreano, a área de transferência, o desfazer, o menu de contexto e os leitores de tela funcionam sem código especial. Veja Digitação e IME.

Sim. MinDate e MaxDate definem os limites, DisabledDates lista os feriados, DisabledWeekDays bloqueia os fins de semana e OnIsDateDisabled decide qualquer outra regra. Os dias desabilitados são riscados, pulados pelo teclado e recusados quando digitados em um seletor. O demo Calendar bloqueia os fins de semana e dois feriados para mostrar as regras em ação.

Dez, no Delphi e no C++ Builder: o seletor de data, o seletor de hora, o spin edit, a avaliação, o controle deslizante de intervalo, o edit com botões, o edit com máscara, o edit de moeda, o memo e o edit de lookup, cada um como controle VCL e FireMonkey. Eles exigem a edição Registrada ou de Avaliação. No .NET os editores WinForms da edição Registrada vinculam um campo por DataSource, DataMember e DataField, e nas duas edições os controles se vinculam com o data binding do WinForms, do WPF e do Avalonia e o edit de lookup recebe as linhas de ItemsSource.

Os quinze controles e o framework de validação estão incluídos. A Community deixa de fora o quadrado HSV e a barra de alfa do seletor de cor, a lista de autocompletar do editor de token, o segundo cursor do controle deslizante de intervalo e os membros DataSource, DataMember e DataField dos editores WinForms. Os editores data-aware do Delphi são somente da edição Registrada. Veja Edições.

Sim. Solte o validador do sgcUICore no formulário, defina o Container e adicione regras: obrigatório, intervalo, tamanho, expressão regular, e-mail, comparação e personalizada. Ele verifica os controles do sgcEditors e também os edits, memos, combos, caixas de seleção e seletores padrão, mostra uma moldura, um ícone e um resumo opcional, e os leitores de tela leem as mensagens. Chame Validate antes de salvar. Está em todas as edições, para VCL, FireMonkey, WinForms, WPF e Avalonia. Veja Validação.

Sim. Cada controle mantém a sua própria cópia de FormatSettings, então nomes de dias e meses, formatos, separadores e o primeiro dia da semana podem diferir por controle. O demo Calendar alterna entre inglês, alemão, espanhol, francês e italiano em tempo de execução, e os números de semana seguem a ISO 8601, a menos que você escolha outra coisa.

Para datas e horas, sim: TsgcVCLDatePicker, TsgcVCLTimePicker e TsgcVCLDateTimePicker são edits tipados com um calendário ou uma lista de horas suspensa. Além disso, leem nomes de meses de forma tolerante, respeitam limites e dias desabilitados, seguem o tema do sgcUI e são desenhados no DPI de cada monitor.

Sim. O C++ Builder 2007 e 2010 a 13 usa os mesmos controles VCL e FireMonkey por meio de headers e bibliotecas gerados, e todo demo Delphi, incluindo o DataAware, também acompanha como projeto C++ Builder. A aba de código desta página mostra o mesmo formulário em Delphi, C++ Builder e C#, e cada exemplo foi compilado antes de ser publicado.

Ajuda do sgcEditors

3,000+Desenvolvedores
20+Anos
761+Componentes
30+Integrações de API
5Plataformas
Garantia de reembolso de 30 diasNão ficou satisfeito? Solicite o reembolso total em até 30 dias após a compra. Ver política de reembolso

Experimente o sgcEditors Hoje

A avaliação do sgcUI inclui o sgcEditors e todos os outros produtos sgcUI.