Desenvolvimento de Sistemas para Automação Comercial

Voltar

Aba RTTI — Data-Binding com Objetos em Memória

Visualmente e na interação com o usuário final, um TTIEdit é idêntico a um TEdit comum. A mágica deles é totalmente arquitetural.

Para entender: os Data Controls (aba Data Controls) como TDBEdit servem para ligar um campo de texto diretamente a um campo de uma tabela no Firebird (via TDataSource), sem escrever código para mover o dado do banco para a tela. Os componentes RTTI fazem exatamente a mesma coisa, mas em vez de se conectarem a um banco de dados, eles se conectam a propriedades de classes/objetos em memória.



O Problema que o RTTI Resolve

  • Imagine que você criou uma classe no seu ERP para gerenciar as configurações da balança do PDV:

    Se você fosse criar uma tela para o usuário editar isso com componentes da aba Standard, você teria que escrever:


TTIEdit, TTICheckBox, TTISpinEdit

  • São os equivalentes RTTI dos componentes comuns. Você os configura via Object Inspector apontando para o objeto e a propriedade que eles devem refletir.

    Para usar o TMultiPropertyLink: É o componente "ponte" que liga vários componentes RTTI a um único objeto, parecido com o papel do TDataSource nos Data Controls. Ao trocar o objeto no TMultiPropertyLink, todos os componentes conectados a ele atualizam ao mesmo tempo.


TTIPropertyGrid — O Object Inspector no seu Sistema

  • Esta é a estrela absoluta da aba. Sabe o Object Inspector do próprio Lazarus (aquela janela onde você muda o Name, Width e Color dos componentes durante o desenvolvimento)? O TTIPropertyGrid é o Object Inspector — disponível para você colocar dentro do seu próprio sistema.

    Se você apontar qualquer objeto do seu sistema (uma nota fiscal, uma configuração, ou até um componente da própria tela) para a propriedade TIObject desse grid, ele varre a classe, descobre sozinho todas as propriedades published que ela tem, e monta o grid visual com as opções de edição corretas — tudo em tempo de execução.


Cenários Práticos em ERP

  • Telas de Configuração Universais

    Em vez de desenhar uma aba gigante de configurações com dezenas de campos para cada módulo, você pode ter um único TTIPropertyGrid na tela. Conforme o usuário clica no menu (Fiscal, Impressão, Balcão, Certificado Digital), você simplesmente passa o respectivo Objeto de configuração para o Grid e ele redesenha a tela de edição sozinho.

  • Padrão MVC/MVVM

    Para arquiteturas mais modernas, onde as regras de negócio ficam estritamente em classes e não nos formulários, o RTTI cria a ponte visual perfeita sem sujar a classe de domínio com código de interface gráfica. Seus objetos de negócio permanecem puros e testáveis.

  • Ferramentas de Personalização pelo Usuário

    Se você estiver criando uma ferramenta onde o próprio usuário pode montar telas ou mexer no layout do recibo, você usa o TTIPropertyGrid para deixá-lo alterar as propriedades dos objetos (fontes, cores, tamanhos) visualmente — igual você faz na IDE do Lazarus durante o desenvolvimento.