7.5.6 é a versão atual atualizado 27/10, 18:04

LojaDev Theme

O componente visual: manual e propriedades

O que é

instalador 1.4.0 · 28 componentes · 83 propriedades documentadas

O LojaDev Theme é o padrão visual do LojaDev PRO em forma de componentes do Delphi. Com ele instalado, cada tela do ERP se desenha no Object Inspector do jeito que roda: botão, rodapé, cabeçalho, cartão, campos, abas, grade e a interface de abas da tela principal. Esta página é gerada do próprio código do componente a cada atualização: o manual abaixo e a ficha de cada peça acompanham o que está instalado.

Como ter: o instalador é distribuído pelo Discord da LojaDev. Rode-o com o Delphi fechado; ele compila o tema no seu próprio Delphi 12 e registra a paleta. A partir do ERP 7.5 o sistema não compila sem o componente.

As peças

por página da paleta

LojaDev Theme

LojaDev Theme PDV

LojaDev Theme TDI

Peças auxiliares

Como usar bem

o manual, versionado com o componente

O LojaDev Theme é o padrão visual do LojaDev PRO em forma de componentes do Delphi: botão, rodapé de ações, cabeçalho, cartão, campos, abas, grade, Kanban, barra de status e a interface de abas da tela principal. A partir da versão 7.5 do ERP, toda tela nova nasce com eles, e as telas antigas vão sendo migradas uma a uma. Este manual diz como usá-los do jeito que o sistema espera. A lista de componentes e de cada propriedade está logo abaixo dele, e é extraída do próprio código a cada atualização.

A regra que vale para tudo: o que a IDE mostra é o que roda

O componente existe para uma coisa: o form aberto no Delphi tem de ser a foto da tela em execução. Cor, posição, tamanho, ordem dos botões, fonte, colunas da grade: tudo fica no .dfm, escolhido no Object Inspector. Nada visual é montado no FormCreate.

O que sobra para o código é o que o .dfm não guarda: preencher listas, ligar dados, reagir a eventos.

A tela típica, de cima para baixo

  1. TCabecalhoBS alinhado em alTop, com Titulo e Subtitulo. Em diálogo pequeno, a TFaixaTituloBS.
  2. TPainelBS com Cartao = True e Align = alClient: é o cartão branco onde vivem os campos e a grade. O fundo do form fica com a cor de página do tema.
  3. Dentro do cartão, os campos: cada TDBEdit ou TEdit solto dentro de uma TCaixaCampo, que desenha a moldura arredondada e o foco. Lista suspensa é TCampoListaDB; data é TCampoDataDB.
  4. A grade é uma TGradeBS, com Modelo = gmLista na consulta e gmCadastro na digitação de itens. As colunas são editadas no editor de colunas da IDE e cada uma é uma TColunaBS.
  5. TRodapeBS alinhado em alBottom, com os TBotaoBS dentro. Cada botão declara a Funcao e o Caption no formato F2 - Gravar; a cor sai da função.

Abas: uma TAbasBS logo acima de um TPageControl, com a propriedade PageControl apontando para ele. Os rótulos vêm das páginas; a troca é automática.

A barra de título das janelas

A barra de título e a borda de todas as janelas do programa saem no grafite do tema (BS_GRAFITE, o mesmo do menu lateral), e a janela que não está em uso fica com o título apagado. Isso se liga uma vez só, no início do programa, com LigarMoldura (no ERP a chamada está em Service\uLigacoesTema.pas). Nenhuma tela precisa fazer nada, e nenhuma deve pintar a própria barra.

Botões e rodapé

Campos

Grade

Telas de configuração: a pilha e a linha de opção

Ao migrar uma tela antiga

Instalar e atualizar

O instalador (InstaladorLojaDevTheme.exe, distribuído pelo Discord da LojaDev) grava o fonte do tema em C:\Componentes\LojaDevTema, compila o tema no seu próprio Delphi, acrescenta a Lib ao Library Path e registra o pacote na IDE. Rode-o com o Delphi fechado. Ele precisa do EhLib instalado na IDE, que o ERP já exige.

Quando sair versão nova do componente, rode o instalador de novo, com o Delphi fechado, antes de abrir os forms do ERP: um form com propriedade que o pacote antigo não conhece morre em "Property X does not exist", e clicar em Ignorar e salvar apaga o componente do formulário. O "Leia" de cada versão do ERP diz quando a atualização é obrigatória.

Se o instalador disser que a compilação falhou, o arquivo C:\Componentes\LojaDevTema\compila_23.0.log diz o motivo; mande-o para o suporte.

Página LojaDev Theme

TRodapeBS

uTema · descende de TPainelBS

A barra de ações do rodapé das telas. Solte os TBotaoBS dentro dele e pronto: ele enfileira pela esquerda, emenda os de mesmo Grupo, ancora o Sair (e o que tiver Lado direita) na ponta direita, e em execução recolhe no botão '... Mais' o que não couber na largura. Arrastar um botão dentro dele reordena; nada de posicionar em código.

PropriedadeTipoPadrãoPara que serve
ResponsivoBooleanTrueEm execução, recolhe no '... Mais' os botões que não cabem na largura da barra (os de maior Grupo saem primeiro; o bloco principal e o Sair nunca saem). Desligado, a barra sai como foi desenhada e o que não couber some pela direita. No designer nunca recolhe.
LinhaTopo
herdada do TPainelBS
BooleanTrue
no TPainelBS: False
O filete de 1 px no alto do rodapé, que o separa do conteúdo. Ligado por padrão.
CorFundo
herdada do TPainelBS
TColorBS_SUPERFICIE
no TPainelBS: BS_CARD
A cor de dentro do rodapé. O padrão é a superfície cinza das barras de ação.

Também tem as de sempre da VCL: Align.

TBotaoBS

uTema · descende de TCustomControl

O botão do sistema, desenhado no padrão do ERP (Bootstrap 5): cantos arredondados, cor pela função, anel de foco e teclado. Solte-o dentro de um TRodapeBS para ele entrar na fila de ações sozinho. Escolha a Funcao (o que ele faz) e deixe a cor com o tema; escreva o Caption como 'F2 - Gravar' para a tecla aparecer no rótulo.

PropriedadeTipoPadrãoPara que serve
CorTCorBScbNenhumaUma cor do catálogo do AdminLTE escolhida à mão (primary, success, teal...). Deixe em cbNenhuma na quase totalidade dos casos: a cor certa sai da Funcao. Escolhida, ela vence a função e a tabela das ações; o Tom continua valendo.
Glifostring—Ícone da fonte Segoe MDL2 à esquerda do texto (o caractere do glifo, escolhido pelo botão '...' do Object Inspector). Vazio = só texto. Botão SÓ com glifo vira botão de ícone, quadrado, e a dica (Hint) passa a ser o nome dele.
LarguraAutomaticaBooleanFalseO botão mede a própria largura pelo texto e pelo glifo, e se remede quando eles mudam. É o que o rodapé espera; desligue só em botão solto cuja largura você fixou à mão no Width.
LarguraExtraInteger0Pixels a MAIS sobre a largura automática, para um botão mais respirado (o Gravar costuma levar +32). Só vale com LarguraAutomatica ligada.
GrupoInteger0O assunto do botão dentro do rodapé. Botões com o mesmo Grupo (diferente de 0) ficam emendados num bloco; entre grupos diferentes o rodapé abre um respiro maior. Você só numera: quem espaça e ordena é o rodapé.
AlignTLadoNoRodape
ldPelaFuncao · ldEsquerda · ldDireita
ldPelaFuncaoEm que ponta do rodapé o botão fica. ldPelaFuncao (o padrão) é o de sempre: o Sair vai para a direita e o resto para a esquerda. ldEsquerda e ldDireita escolhem a ponta, e aí a ordem entre os botões do mesmo lado é a sua: pelo Grupo e, dentro do grupo, pela posição em que você o soltou. Em tempo de projeto todos os botões aparecem na fila, mesmo os que a tela esconde em execução.
FocoTracoBooleanFalseComo o botão mostra que tem o foco do teclado: False é o anel em volta (o padrão), True é um traço embaixo. O rodapé liga o traço nos botões dele; em botão solto deixe o anel.
TomTTomBotao
tmCheio · tmContorno · tmSuave · tmClaro
tmCheioO peso da cor: tmCheio (fundo na cor, texto branco), tmContorno (só borda e texto na cor), tmSuave (fundo pastel) e tmClaro (o cimento dos acessórios). A ação principal da tela fica cheia e as outras em contorno; o rodapé já resolve isso pela Funcao.
FuncaoTFuncaoBotao
fnNovo · fnGravar · fnEditar · fnProcessar · fnConsultar · fnAtualizar · fnImprimir · fnCancelar · fnExcluir · fnSair · fnNeutro
fnNovoO que o botão FAZ. É daqui que saem a cor e o tom, pela tabela do tema: fnNovo (azul), fnGravar (verde), fnEditar (amarelo), fnProcessar (roxo), fnConsultar (ciano), fnAtualizar (teal), fnImprimir e fnCancelar (cinza), fnExcluir (vermelho), fnSair (o Sair, ancorado à direita) e fnNeutro (acessório sem família). Escolha a função certa em vez de escolher cor.
VerticalBooleanFalseBotão DEITADO: o rótulo lê de baixo para cima e o corpo fica alto e estreito -- é para uma tira lateral de ações, onde falta largura. Só muda o desenho: dê ao botão, no form, o tamanho deitado (estreito e alto).

Também tem as de sempre da VCL: Caption, Font, ParentFont, ParentShowHint, Enabled, Hint, ShowHint, TabOrder, TabStop, Visible, OnClick, OnEnter, OnExit.

TBotaoIcone

uTema · descende de TCustomControl
PropriedadeTipoPadrãoPara que serve
Glifostring—O ícone do botão: um caractere da Segoe MDL2 Assets (as constantes GL_* do tema). O "..." do Object Inspector abre a lista com o nome e o significado de cada um.
GlifoAltstring—O que aparece no lugar do ícone quando a máquina não tem a fonte Segoe MDL2 (um caractere comum, como x ou *).

Também tem as de sempre da VCL: Caption, Font, Enabled, Hint, ShowHint, TabOrder, TabStop, Visible, OnClick, OnEnter, OnExit.

TPainelBS

uTema · descende de TPanel

O painel do tema: um cartão branco de cantos arredondados (Cartao = True) ou uma faixa reta com filete (LinhaTopo/LinhaBase). É a base do cabeçalho, do rodapé e dos cartões de conteúdo. Use-o no lugar do TPanel sempre que o painel aparecer na tela.

PropriedadeTipoPadrãoPara que serve
RaioInteger0Raio dos cantos, em pixels. 0 é o painel reto, para faixas de cabeçalho e rodapé; o cartão usa o raio do tema. Ligar Cartao já acerta isto.
CorFundoTColorBS_CARDA cor de dentro do painel. Troque por aqui, não pelo Color do TPanel: quem pinta é o tema.
CorBordaTColorclNoneCor do contorno do cartão; clNone desliga o contorno. Não desliga o filete de LinhaTopo/LinhaBase, só lhe dá um tom próprio.
LinhaTopoBooleanFalseUm filete de 1 px no alto do painel, para separá-lo do que está acima sem moldura inteira. É o do rodapé de ações.
LinhaBaseBooleanFalseO mesmo filete, embaixo. É o do cabeçalho das telas de lista.
OnPintarTNotifyEvent—Dispara depois de o fundo estar pronto, para a tela desenhar o que é dela no Canvas (um ícone, um selo, um número grande). Desenhar fora deste evento não adianta: a pintura seguinte apaga.
CorAtrasTColorclNoneA cor de quem está ATRÁS do painel, pintada nos quatro cantinhos que o arredondamento deixa de fora. clNone com Raio > 0 deixa os cantos sem pintura; ligar Cartao já a preenche com o fundo da página.
CartaoBooleanFalseLiga o cartão de uma vez: cantos arredondados, fundo branco, contorno e cantos pintados. Desligar devolve o painel reto.

Também tem as de sempre da VCL: BevelOuter, ParentBackground.

TPilhaBS

uTema · descende de TCustomControl

A pilha lateral de assuntos: um cartão com um item por assunto, o aberto cheio na cor dele. Solte-a à esquerda da tela (Align = alLeft) e preencha Itens no editor. Com PageControl apontado, cada assunto abre a página de mesmo índice; sem ele, a tela troca o conteúdo no OnTrocar. As setas do teclado andam entre os assuntos.

PropriedadeTipoPadrãoPara que serve
ItensTItensPilhaBS—Os assuntos, na ordem da pilha. Cada um tem Titulo, Dica, Cor e Detalhe.
IndiceInteger0O assunto aberto (0 = o primeiro). Atribuir troca o assunto e dispara o OnTrocar.
Cabecalhostring—O rótulo pequeno, em maiúsculas, no alto do cartão ('Assuntos'). Vazio não mostra a faixa.
PageControlTPageControl—O TPageControl que esta pilha dirige: cada assunto abre a página de mesmo índice, e as abas nativas somem em execução.
OnTrocarTNotifyEvent—Dispara ao trocar de assunto. Com PageControl apontado a página já vira sozinha; use o evento para o que a tela faz a mais.

Também tem as de sempre da VCL: Align, Anchors, Color, Enabled, Font, ParentShowHint, ShowHint, TabOrder, TabStop, Visible.

TOpcaoBS

uTema · descende de TCustomControl

Uma opção de configuração: o título, a dica que diz o EFEITO, o selo quando o escopo dela difere do da seção e o controle que muda o valor, solto DENTRO dela no designer. Com caixa de marcar (TCheckBox, TDBCheckBox) a caixa fica à esquerda do título e clicar no texto marca; com campo (TCaixaCampo, TCampoListaDB, TCampoDataDB, edit) o título vira o rótulo em cima e a dica vai embaixo. Dentro de um TGrupoOpcoesBS com DicasEmBalao (o padrão) a dica sai da linha e aparece em balão ao passar o mouse. A altura sai do texto: defina só a largura.

PropriedadeTipoPadrãoPara que serve
Titulostring—O nome da opção, como o operador a procura.
Dicastring—Uma linha dizendo o EFEITO da opção, e não o nome da coluna. Quebra sozinha na largura da linha; dentro de um TGrupoOpcoesBS com DicasEmBalao, vira o balão que aparece ao passar o mouse na linha.
Selostring—Selo ao lado do título quando o escopo da opção é diferente do da seção ('Este computador', 'Todas as empresas'). Vazio não mostra.
SeloCorTCorBScbWarningA cor do selo, do catálogo.
Termosstring—Palavras a mais que a busca da tela aceita para achar esta opção (siglas, nome técnico, o nome antigo). Não aparecem na tela.
LarguraCampoInteger0A largura do campo quando ele é mais curto que a linha (a série, um número, a UF). 0 = o campo ocupa a largura inteira, como uma pasta. Não vale para a caixa de marcar.
OcupaInteger1Dentro de um TGrupoOpcoesBS, quantas colunas a linha ocupa. 1 = uma coluna; 0 = a fileira inteira (o texto longo, a observação). Fora do grupo não faz nada.

Também tem as de sempre da VCL: Align, Anchors, Enabled, Font, ParentFont, TabOrder, Visible.

TGrupoOpcoesBS

uTema · descende de TCustomControl

As linhas de opção (TOpcaoBS) em COLUNAS: solte as linhas dentro do grupo e ele as arruma lado a lado, da esquerda para a direita e de cima para baixo, cada fileira com a altura da linha mais alta dela. A altura do grupo sai do conteúdo; o Align das linhas não vale aqui dentro. Cada linha ocupa as colunas que o Ocupa dela diz (0 = a fileira inteira). Com DicasEmBalao (o padrão) a dica de cada linha sai dela e aparece em balão ao passar o mouse.

PropriedadeTipoPadrãoPara que serve
ColunasInteger2Quantas colunas o grupo tem. 1 = uma linha embaixo da outra.
VaoColunasInteger24O vão entre uma coluna e a seguinte, em pixels.
VaoLinhasInteger8O vão entre uma fileira e a seguinte, em pixels.
DicasEmBalaoBooleanTrueA dica de cada linha em balão, ao passar o mouse na linha, em vez de escrita embaixo do título ou do campo: a linha fica só com o título e o controle. Desligado, a dica volta para dentro dela.

Também tem as de sempre da VCL: Align, Anchors, Enabled, Font, ParentFont, TabOrder, Visible.

TColunasBS

uTema · descende de TCustomControl

A página em COLUNAS -- o row com col-md-6 do Bootstrap: cada controle solto dentro dele é uma coluna, lado a lado e da mesma largura, com Vao entre elas. A coluna é um TPainelBS com AutoSize (CorFundo da página) e os cartões alTop dentro; cada coluna fica com a altura dela, e a do TColunasBS é a da mais alta. O Align das colunas não vale aqui dentro.

PropriedadeTipoPadrãoPara que serve
VaoInteger12O vão entre uma coluna e a seguinte, em pixels. O padrão é o mesmo vão que separa um cartão do de baixo.

Também tem as de sempre da VCL: Align, Anchors, Enabled, Font, ParentFont, TabOrder, Visible.

TCabecalhoBS

uTema · descende de TPainelBS

O cabeçalho padrão das telas: filete azul, título grande e subtítulo que quebra linha e se remede quando a tela estreita. Solte-o no alto do form, alinhe em alTop e escreva Titulo e Subtitulo. A altura se ajusta ao subtítulo sozinha.

PropriedadeTipoPadrãoPara que serve
Titulostring—O título da tela, em negrito, no alto do cabeçalho.
Subtitulostring—A frase de apoio embaixo do título. Pode ser longa: quebra linha e o cabeçalho cresce para caber.
LinhaBase
herdada do TPainelBS
BooleanTrue
no TPainelBS: False
O filete de 1 px embaixo do cabeçalho, que o separa do conteúdo. Ligado por padrão.

Também tem as de sempre da VCL: Align.

TFaixaTituloBS

uTema · descende de TPanel

A faixa azul de título das telas menores (diálogos e cadastros rápidos): fundo na cor do tema, título e subtítulo em branco. Alinhe em alTop e escreva os dois textos; a altura acompanha o subtítulo.

PropriedadeTipoPadrãoPara que serve
Titulostring—O título, em branco sobre a faixa azul.
Subtitulostring—A frase de apoio embaixo do título, em branco; quebra linha e a faixa cresce para caber.

Também tem as de sempre da VCL: Align, BevelOuter, ParentBackground.

TCaixaCampo

uTema · descende de TCustomControl

A moldura arredondada dos campos de digitação. Solte um TEdit, TDBEdit ou TMaskEdit DENTRO dela no designer e ela o adota: tira a borda do Windows, desenha a pastilha do tema e acende a borda azul quando o campo tem o foco. Depois disso o pai do campo é a caixa: para mover o campo, mova a caixa.

Sem propriedade própria no Object Inspector: o que ele faz é configurado em código, pela tela, como a descrição acima diz.

Também tem as de sempre da VCL: Align, Anchors, TabOrder, Visible, Enabled.

TCampoLista

uTema · descende de TCustomControl

A lista suspensa do tema (o select do Bootstrap), no lugar do TComboBox. Preencha Itens em código e leia ItemIndex ou Texto; ItemIndex -1 é 'selecione'. Para campo ligado ao banco use o TCampoListaDB.

PropriedadeTipoPadrãoPara que serve
ItensTStringList—As opções da lista, na ordem em que aparecem. Lista fixa (ambiente, versão, UF) se escreve aqui no Object Inspector; lista que vem do banco se enche em código, com Add.
FocoSeguinteTWinControl—Para onde o foco vai depois de o operador escolher um item com o mouse. Aponte o campo seguinte para encadear a digitação (tipo de pessoa → documento). Vazio = o foco volta para a própria lista.
MaxLinhasInteger6Quantas linhas a lista mostra antes de rolar. 6 serve à maioria; lista longa (fornecedores, cidades) pede mais.
OnTrocarTNotifyEvent—Dispara quando a escolha MUDA. É aqui que entra a regra da tela: trocar a máscara do documento, recalcular, mostrar outro campo. Escolher de novo o item que já estava não dispara: para isso é o OnFechado.
OnFechadoTNotifyEvent—Dispara sempre que a lista fecha, inclusive quando o operador escolhe o item que já estava. Use-o para reagir ao fechamento independentemente da troca.

Também tem as de sempre da VCL: Hint, ParentShowHint, ShowHint, Font, TabOrder, TabStop, Visible, OnClick.

TCampoData

uTema · descende de TCustomControl

O campo de data do tema: digitável, com máscara, e o calendário como atalho no glifo à direita (Espaço, F4 ou Enter abrem; setas mudam o dia; PgUp/PgDn o mês). Em código: Data, Vazio e Limpar. Campo vazio mostra 'selecione' e não grava data nenhuma. Para campo ligado ao banco use o TCampoDataDB.

Sem propriedade própria no Object Inspector: o que ele faz é configurado em código, pela tela, como a descrição acima diz.

Também tem as de sempre da VCL: Hint, ParentShowHint, ShowHint, Font, TabOrder, TabStop, Visible, OnClick.

TAbasBS

uTema · descende de TCustomControl

A barra de abas do tema (a pílula azul), no lugar das abas nativas do Windows. Aponte PageControl para um TPageControl da tela: a barra tira os rótulos das páginas dele, esconde as abas nativas em execução e vira a página ao clicar, sem código. Solte-a logo acima do PageControl.

PropriedadeTipoPadrãoPara que serve
IndiceInteger0A aba aberta (0 = a primeira). Atribuir troca a aba e dispara o OnTrocar; é como a tela volta à primeira aba ao abrir um registro novo.
ItensTStringList—Os rótulos das abas, um por linha, quando não há PageControl apontado (com PageControl, os rótulos vêm das páginas). Em código, o Adicionar acrescenta um.
EstiloTEstiloAbas
eaSublinha · eaPilula · eaPilulaSuave · eaCartao · eaSegmento
eaPilulaA forma das abas. O padrão do sistema é eaPilula (pílula azul) nas telas de cadastro e eaSublinha (traço) nas de lista; os outros três estilos existem para comparação e não entram em tela de produção.
CorRealceTColorBS_PRIMARYA cor da aba ativa. O padrão já é o azul do tema; não troque em tela de produção.
RecuoInteger0Recuo da primeira aba, em pixels, dentro da faixa. Use isto, não Margins no controle: recuar o controle deixa as pontas da faixa descobertas.
OnTrocarTNotifyEvent—Dispara ao trocar de aba. Com PageControl apontado a página já vira sozinha; use o evento só para o que a tela precisa fazer a mais (carregar dados da aba, por exemplo).
PageControlTPageControl—O TPageControl que esta barra dirige. Apontado, os rótulos vêm das páginas dele, as abas nativas somem em execução e a troca de página é automática.

Também tem as de sempre da VCL: Align, Anchors, Color, Font, Visible.

TMenuBS

uTema · descende de TComponent

O menu suspenso do tema (o dropdown), com sombra, glifos e teclado. É um componente não visual: em código, Limpar, Adicionar (texto, ação, glifo) e AbrirSobre(botão) para a barra do rodapé, AbrirAbaixoDe(botão) para barra do topo, ou AbrirEm(x, y) para menu de botão direito.

Sem propriedade própria no Object Inspector: o que ele faz é configurado em código, pela tela, como a descrição acima diz.

TCampoListaDB

uTemaDB · descende de TCampoLista

A lista suspensa do tema ligada ao banco, no lugar do TDBComboBox. Aponte DataSource e DataField no designer e, em código, Definir(['FISICA', 'JURIDICA'], []) preenche os itens (e as chaves, quando a coluna guarda código e a tela mostra texto). Herda tudo do TCampoLista.

PropriedadeTipoPadrãoPara que serve
ChavesTStringList—O valor que a coluna guarda para cada item, na mesma ordem dos Itens (a coluna guarda 0/1 e a tela mostra Produção/Homologação). Vazia = grava o próprio texto do item.
DataFieldstring—A coluna do dataset que a lista lê e grava.
DataSourceTDataSource—O DataSource do dataset. A ordem de atribuição com o DataField não importa: a ligação só trabalha quando os dois existem.

TCampoDataDB

uTemaDB · descende de TCampoData

O campo de data do tema ligado ao banco, no lugar do TDBEdit de data. Aponte DataSource e DataField; campo nulo mostra 'selecione' e escolher a data é o que grava. Herda tudo do TCampoData.

PropriedadeTipoPadrãoPara que serve
DataFieldstring—A coluna de data do dataset que o campo lê e grava.
DataSourceTDataSource—O DataSource do dataset.

TQuadroKanban

uKanban · descende de TCustomControl

O quadro Kanban do tema: colunas coloridas com cartões que o operador arrasta de uma para outra. Em código, Limpar, AddColuna, AddCartao e Montado montam o quadro; OnAbrirCartao e OnSoltarCartao devolvem o clique e o arrasto. Solte-o e alinhe em alClient; o desenho vem inteiro do tema.

Sem propriedade própria no Object Inspector: o que ele faz é configurado em código, pela tela, como a descrição acima diz.

TBarraStatus

uBarraStatus · descende de TCustomControl

A barra de status do rodape da tela principal: segmentos medidos pelo texto, com prioridade -- o que nao cabe some e vai para a dica, o destacado encolhe em vez de sair. Em codigo, Adicionar cria o segmento e Definir escreve o valor; Destacar, DefinirPonto e DefinirGlifo dao o realce. Alinhe em alBottom.

Sem propriedade própria no Object Inspector: o que ele faz é configurado em código, pela tela, como a descrição acima diz.

TGradeBS

uGridDesenho · descende de TDBGrid

A grade do tema sobre a TDBGrid da VCL: cabecalho, linha corrente, zebra e selecao ja no padrao, no designer e em execucao. As colunas sao TColunaBS, com checkbox, lista de chaves, quebra de linha e lookup de outro dataset -- tudo no editor de colunas da IDE. Grade que aceita digitacao ganha o + de incluir no canto e o texto de vazio orienta o operador. Titulo de coluna com barra vertical (Custo|Nota) vira titulo em dois niveis: o grupo em cima, centrado sobre as colunas vizinhas do mesmo grupo, e o nome da coluna embaixo -- a palavra que se repetia sobe para a faixa e a coluna fica com a largura do numero.

PropriedadeTipoPadrãoPara que serve
ModeloTModeloGrade
gmLista · gmCadastro
gmListagmLista para a grade de consulta (linha inteira selecionada, sem edicao) e gmCadastro para a grade que digita item a item (edicao na celula, indicador de linha). O modelo acerta fontes, cores e opcoes de uma vez.
AlturaLinhaInteger0Altura de cada linha em pixels; 0 e a que a fonte pede. Suba quando alguma coluna usa Quebra.
BotaoIncluirBooleanTrueO + azul no canto do titulo de toda grade que aceita digitacao: o clique inclui um registro, o mouse vira mao e a dica explica. Desligue so em grade que nao deve incluir pelo proprio corpo.
TextoVaziostring—O que a grade sem registro escreve no meio. Vazio usa o padrao: 'Nenhum registro encontrado' na grade de consulta e 'Nenhum item: clique no + ou pressione Insert' na que digita.
LinhaEmNegritoBooleanTrueA linha corrente sai em negrito (o padrao). Desligue na grade de uma tela densa, onde a cor da linha ja diz qual e a corrente e o negrito so pesa (o cadastro da O.S.).
EnterComoTabBooleanFalseO Enter anda para a proxima coluna, como o Tab (na ultima coluna vai para a linha seguinte). Ligue na grade que digita item a item; desligado, o Enter so abre e fecha o editor da celula, como na grade da VCL.

TColunaBS

uGridDesenho · descende de TColumn

A coluna da TGradeBS (o item do editor de colunas). Alem do que a coluna da VCL ja faz, ela marca campo S/N como checkbox, mapeia a lista suspensa para o valor gravado (KeyList), quebra o texto na altura da linha e enche a lista de outro dataset (ListaFonte/ListaChave/ListaTexto).

PropriedadeTipoPadrãoPara que serve
CheckboxBooleanFalseA celula vira um marcador: clique ou Espaco alterna o campo entre ValorMarcado e ValorDesmarcado, sem editor de texto. Serve a campo Boolean ou a S/N.
ValorMarcadostring—O valor gravado quando o checkbox esta marcado (S por padrao).
ValorDesmarcadostring—O valor gravado quando o checkbox esta desmarcado (N por padrao).
KeyListTStrings—O valor GRAVADO de cada item do PickList, na mesma ordem: o PickList mostra 'Ativo' e o campo guarda 'A'. Vazio grava o proprio texto.
QuebraBooleanFalseO texto da celula quebra linha dentro da altura da linha. Suba AlturaLinha na grade para caber mais de uma linha.
ListaFonteTDataSource—O DataSource de OUTRO dataset de onde a lista suspensa desta coluna e enchida (o lookup): PickList e KeyList recebem os registros dele quando o editor abre, e o texto mostrado sai do mapa.
ListaChavestring—O campo do dataset de ListaFonte que e a CHAVE gravada (o codigo).
ListaTextostring—O campo do dataset de ListaFonte que e o TEXTO mostrado (a descricao).
ListaVivaBooleanFalseA lista suspensa desta coluna e o proprio dataset da ListaFonte, AO VIVO: abre sozinha quando o operador comeca a digitar, o texto digitado fica na celula (a tela filtra a fonte a cada tecla, e a lista acompanha) e setas + Enter escolhem. A lista marca o primeiro item cujo ListaTexto COMECA com o texto digitado; sem nenhum, a linha em que a tela deixou a fonte. A escolha grava o ListaTexto da linha escolhida no campo e dispara o OnEscolha. Serve a coluna de campo comum (nao de lookup); ListaChave e ListaTexto sao obrigatorios.
ListaCamposstring—Os campos da ListaFonte que a lista viva mostra, em colunas, separados por ponto e virgula (CODIGO;DESCRICAO;PR_VENDA). Vazio mostra so o ListaTexto. Em coluna de campo de lookup, sao os campos do dataset do lookup que a lista dele mostra: o LookupResultField tem de estar entre eles, e e nele que a digitacao procura.
ListaLarguraInteger0Largura em pixels da lista viva, ou da lista do lookup com ListaCampos, para quando ela precisa ser mais larga que a celula (varias colunas). 0 = a largura da celula.
OnEscolhaTNotifyEvent—Disparado quando o operador escolhe um item da lista viva: o texto ja foi ao campo e a ListaFonte esta parada na linha escolhida -- e dela que a tela le o resto (o codigo do produto, por exemplo). O Sender e a coluna.

Página LojaDev Theme PDV

TBotaoPDV

uTemaPDV · descende de TBotaoBS

A tecla do caixa: o botão do PDV, com o selo da tecla de atalho (Tecla), letra branca sobre a cor cheia e a opção de repetir enquanto segurado (Repetir), para quantidade. Herda do TBotaoBS o foco, o Enabled e a tabela de cor; o balcão configura Tecla, Destaque e CorCheia em código, na tela.

Sem propriedade própria no Object Inspector: o que ele faz é configurado em código, pela tela, como a descrição acima diz.

TRodapePDV

uTemaPDV · descende de TPainelBS

O rodapé do caixa: a faixa de teclas do PDV, que refaz a fila sozinha quando uma tecla some ou aparece. Solte os TBotaoPDV dentro dele.

PropriedadeTipoPadrãoPara que serve
LinhaTopo
herdada do TPainelBS
BooleanTrue
no TPainelBS: False
O filete de 1 px no alto do rodapé do caixa. Ligado por padrão.
CorFundo
herdada do TPainelBS
TColorBS_SUPERFICIE
no TPainelBS: BS_CARD
A cor de dentro do rodapé do caixa. O padrão é a superfície cinza.
CorBorda
herdada do TPainelBS
TColorBS_BORDA
no TPainelBS: clNone
A cor do filete de cima (e do contorno, se o rodapé virar cartão). O padrão é a cor de divisória do tema.

Também tem as de sempre da VCL: Align.

TCampoValorPDV

uTemaPDV · descende de TCustomControl

O campo único de valor do fechamento da venda: o maior número da tela e o único do corpo que recebe foco. O papel dele muda com o estado da venda ('a receber', 'falta', 'troco') pelo Vestir, em código. Não o embrulhe num TCaixaCampo: ele desenha a própria moldura.

Sem propriedade própria no Object Inspector: o que ele faz é configurado em código, pela tela, como a descrição acima diz.

Também tem as de sempre da VCL: Enabled, Visible, TabOrder.

TCartaoFormaPgto

uTemaPDV · descende de TGraphicControl

A forma de pagamento como cartão de grade no fechamento: letra do atalho no selo, valor lançado e o X de desfazer. Não recebe foco de propósito: quem recebe é o campo de valor. A tela do caixa cria e configura os cartões em código (IdForma, Tipo, Tecla, Glifo).

Sem propriedade própria no Object Inspector: o que ele faz é configurado em código, pela tela, como a descrição acima diz.

Também tem as de sempre da VCL: Caption, Enabled, Font, Hint, ShowHint, Visible, OnClick.

Página LojaDev Theme TDI

TTDI

TDI · descende de TCustomControl

A interface de abas da tela principal: cada tela aberta vira uma aba com X, o painel inicial é a aba fixa, e o menu de botão direito fecha uma ou todas. Solte-o no painel de trabalho; em execução ele cria o TPageControl como irmão e abre as telas por MostrarFormulario ou MostrarInstancia.

PropriedadeTipoPadrãoPara que serve
MostrarMenuPopupBoolean—Liga o menu de botão direito nas abas (Fechar, Fechar todas).
OnSemAbasTNotifyEvent—Dispara quando a última aba se fecha e a fileira de abas some, para o dono reajustar o que voltou ao lugar de origem.
OnAbaAtivaTNotifyEvent—Dispara sempre que a aba da frente muda: por clique, por abertura de tela nova ou por fechamento. É o funil único; não assine o OnChange do PageControl por fora, ele não cobre a troca por código.
AbaFixaOcultaBoolean—Tira a aba do painel inicial da fileira, deixando só as abas das telas. Ligue apenas quando houver outro caminho de volta ao painel (o título do cabeçalho no menu lateral), senão o operador fica sem como voltar.
PageControlTPageControl—O TPageControl que o TDI cria e dirige em execução (nil no designer). Só para leitura.
FormPadraoTFormClass—A classe do formulário que fica aberto quando todos os outros se fecham (o painel inicial).

TTabCloseButton

TabCloseButton · descende de TPageControlEx

A fileira de abas com o X de fechar em cada uma, usada pelo TDI. Pinta a faixa inteira no padrão do tema e avisa o dono quando o operador clica no X; a aba fixa não ganha X.

Sem propriedade própria no Object Inspector: o que ele faz é configurado em código, pela tela, como a descrição acima diz.

TPageControlEx

PageControlEx · descende de TPageControl

O TPageControl com as abas pintadas pelo tema, sem o traje do Windows. Mesmas propriedades do TPageControl; so o desenho muda.

Sem propriedade própria no Object Inspector: o que ele faz é configurado em código, pela tela, como a descrição acima diz.

TTabControlEx

PageControlEx · descende de TTabControl

O TTabControl com as abas pintadas pelo tema, sem o traje do Windows. Mesmas propriedades do TTabControl; so o desenho muda.

Sem propriedade própria no Object Inspector: o que ele faz é configurado em código, pela tela, como a descrição acima diz.

O que mudou no componente

as últimas 12 alterações