Bibliotecas Gráficas
Índice
Desenvolvendo interfaces com a Biblioteca Uniware
Esse guia tem por funcionalidade auxiliar o desenvolvedor na programação de interfaces utilizando a biblioteca da Uniware.
É importante observar que esse artigo não aborda a instalação dos componentes gráficos. Para isso, visite Instalação Delphi
Getting Started
Nesse capítulo podem ser encontrados materiais referentes ao desenvolvimento do unilab para quem está começando.
Banco de dados
Toda alteração no banco de dados é replicada na função TFAtualiza@Ver_Ultimas.
Em casos de views, é necessário escreve-las em:
- TFAtualiza@CreateViews;
- TFAtualiza@DropViews.
Criando interfaces
Os templates de interface da Uniware encontram-se em Arquivo > Novo... > aba 'UNIWARE_BETA'. utilize, de preferência, os templates FBase%TIPO%R03.
R03 é a biblioteca de componentes visuais que a Uniware utiliza em seus templates e o tipo varia de acordo com a necessidade, como explicado abaixo:
Ao criar uma unit, adicionar o tipo ao sufixo:
- Sel, Interfaces de consulta (_R__);
- Cad, Manipulação de dados (C_UD);
- Rel, Referentes aos relatórios.
Será necessário adicionar ao uses a unit UFMain, para integrar-se com o projeto todo.
A Unit, ao ser criada, possui uma parte do código assim:
var Form1: TForm1;
No projeto essa parte é desnecessária, visto que o FMain realiza a instanciação das interfaces de outra forma.
Dentro da unit UFMain, adicionar o PS (Se necessário, adicionar um CS próprio) para gerenciamento da interface a ser criada.
Ao apagar o código acima de uma unit, remover do programa UNILAB_BETA a criação automática da interface, como na linha:
Application.CreateForm(TForm1, Form1);
Propriedades da Interface
O capítulo a seguir identifica possíveis problemas que o programador pode encontrar ao desenvolver suas primeiras interfaces. Relevando as propriedades principais:
TFBase???R03
??? pode-se interpretar como 'Cad' ou 'Sel'.
Desabilite a propriedade BorderIcons.biHelp, pois não disponibilizamos o help por interfaces, ainda.
FormStyle = fsMDIChild, não me lembro bem o objetivo, mas é necessário.
Para ser instanciado, é necessário adicionar aos eventos do TUPS???:
Result := NOME_CLASSE;
No evento do click para abrir a interface Sel, sua interface deve ser chamada utilizando UMenuCall('nomeCS','nomePS');
TUQuery
- Nome Default: Q;
- Generico: Essa propriedade define a consulta a ser utilizada;
- SQL, SQLIB, SQLMS, SQLMySQL e SQLORACLE: consulta destinada à um tipo de banco. SQL deve ser configurada caso seja determinado Generico = true;
- TabelaPrincipal: Deve conter o nome da tabela utilizada no SQL, em interfaces SEL, é comum o uso de Views para essa consulta;
- TabelaPrincipalAlias: Caso a tabela possua um alias na SQL, ele deve ser informado aqui;
- UDataBase: referencia FMain.UDB que é a database do sistema.
TDataSource
- Nome Default: DS;
- UQuery: Esse campo deve estar referenciado para o componente anteriormente descrito, Q.
TUDataEntry
- Nome Default: DE;
- Limite: Determina a quantidade máxima de cadastros de detalhes;
- LinhasVisiveis: Define quantos campos aparecem abaixo do edit de detalhe (inclusive);
- UCadastro:Precisa referenciar o TUCadastro associado à grid;
- UDataSource: Esse campo deve estar referenciado para o componente anteriormente descrito, DS;
- UDataEntry: Quando for utilizar relações mestre-detalhe na interface, o Data Entry responsável pelo detalhe referencia o Data Entry do mestre.
- UsaScrollBar: Necessário quando o numero de 'Limite' ultrapassa 'LinhasVisiveis'.
TUDataEntry
- Nome Default: CAD;
- UDataEntry: Esse campo deve estar referenciado para o componente anteriormente descrito, DE.
Para poder trabalhar as configurações visuais da grid, como largura da coluna, propriedades de leitura, etc.
Use o RClick nesse componente e selecione colunas da grid de procura.
(Você acessa a coluna individualmente buscando a propriedade Columns da DBGridP)
TUField
Para acessar os Campos do dataset, DClick o componente de Query.- Nome Default: Q concatenado do mesmo nome da coluna do banco;
- Campo: Qual campo do banco ele representará;
- ChavePrimaria: Identificar a PK da tabela;
- Edicao: Indica o componente visual que edita esse valor;
- Filtra: Habilita o campo a ser uma chave no botão Filtra;
- NaNavegacao: Define se a coluna aparecerá na Grid;
- Ordena: Permite o usuário Ordenar os resultados utilizando a coluna como parâmetro, é obrigatório no mínimo 1 dos campos ser True;
- PreencheChave: Em uma situação mestre-detalhe, esse parâmetro permite que seja inserido no campo a chave primária do mestre;
- Procura: Habilita a procura de valores na coluna pelo botão Procura;
- Tabela: Indica a qual tabela o campo pertence;
- TabelaAlias: Preenchido caso a tabela possua alias;
- Titulo: valor a ser apresentado no cabeçalho da coluna;
TUFBase???R03Data
??? pode-se interpretar como 'Cad' ou 'Sel'.- Nome Default: ???Data;
- No SelData:
- CallCadModal: Não permite que seja aberta mais de uma tela de Cad;
- CallCs: Nome do CS que gerenciará essa interface (UFMain);
- CallPs: Identificar o processo da interface (UFMain);
- No SelData:
TUOrdemCombo
(Esse é um componente Invisível)- Nome Default: OC;
- AliasInicial: Coluna definida para que o edit possa fazer uma busca;