Git Product home page Git Product logo

routecontrol's Introduction

Route Control

Este recurso foi desenvolvido para facilitar o controle, transação e gerenciamento das telas abertas dentro de seu aplicativo. Ele foi baseado no estilo e funcionamento das rotas de linguagens web.

Novo projeto -> Como utilizar

Declaração e instanciação

1 - Crie um projeto em branco com apenas um form.

2 - Importe em seu projeto a unit "route.controller.pas".

3 - Adicione nas uses do form a unit "route.controller".

4 - Adicione em seu projeto também o "frame.pai.pas". Ele será utilizado para criação das próximas telas de seu sistema com o recurso da herança.

5 - Declare uma variável do tipo "TRouteControl":

image

  route := TRouteControl.Create(lyScreen);

6 - Em seu formulário adicione um componente que herde da classe TControl e que deseja utilizar como a tela de exibição do nosso projeto: TRectangle, TRect, TLayout, ...

7 - Em um dos eventos de abertura do form, instancie a variável criada passando de parâmetro o componente herdado do TControl:

image

8 - Crie um novo frame herdando o FrmPai, como por exemplo "FrmCliente";

9 - Adicione o nome da uses do novo frame criado no form;

10 - Declare uma variável no escopo superior do form:

image

11 - Mapeie este novo frame que você acabou de criar dentro do componente de rotas logo após a instanciação da variável de rotas e de um nome para a rota, como por exemplo "ROUTE/CLIENTE":

image

  route.Add(TRouteObject.new
    .setRoute('ROUTE/CLIENTE')
    .setClassType(TFrmCliente)
    .setReference(frameCliente)
  );

Cada novo frame criado dentro do projeto que você desejar utiliza-lo como tela de exibição de conteúdo, você precisará repetir os passos "8, 9, 10 e 11".

Este é o processo de declaração e instanciação deste recurso.

Eventos disponíveis e disparados do frame

Eventos padrões do frame

  • OnEnter -> Este evento do frame é disparado ao ser exibido o frame;
  • OnExit -> Este evento do frame é disparado antes de outro frame sobrepor o frame atual sobre a tela;
  • OnKeyUp -> Este evento do frame é disparado quando algum botão é pressionado;

Eventos implementados: Eles precisam ser sobreescritos nos frames filhos que desejam utiliza-los

  • OnKeyboardShown -> Este evento é disparado apenas quando o teclado virtual é exibido sobre a aplicação (utilizado no mobile);
  • OnKeyboardHidden -> Este evento é disparado apenas quando o teclado virtual estava visível e foi escondido (utilizado no mobile);
  • SetParams -> Este evento é disparado caso for passado algum parâmetro no procedimento Open e Clear da classe TRouteControl;

Transações entre telas

Exibir um frame na tela (Equivalente ao form.show ou form.showModal)

Ao utilizar este recurso da classe "TRouteControl", você estará carregando um frame para ser exibido dentro do componente herdado do TControl que está dentro de seu form.

Procedure: Open();

Parâmetros:

  • route -> Nome da rota que foi definida no item "11" acima. Parâmetro obrigatório

  • params -> Um objeto onde você adicionará parâmetros que serão repassados para o frame executar alguma ação específica, como abrir um determinado registro, exibir uma determinada informação na tela. Você pode passar quantos parâmetros achar necessário. O evento utilizado para leitura destes parâmetros é o setParams(). Parâmetro opcional

  • effectType -> Este parâmetro é responsável pelo efeito de apresentação do frame em tela. | etNone = Nenhum efeito | etRightToLeft = O frame inicia a apresentação da direita para a esquerda | etBottomToTop = O frame inicia a apresentação de baixo para cima | Parâmetro opcional

  route.Open(
    'ROUTE/CLIENTE',
    TRouteParams.new
      .AddPair('codigo', 192817)
      .AddPair('nome', 'Jucelino Roman')
      .AddPair('somenteLeitura', true)
  );

Fechar a tela atual e volta para a anterior ou qualquer outra que já esteja aberta

Este recurso serve para voltar para a última tela exibida ou para uma determinada rota que já tenha sido aberta anteriormente.

Procedure: Back();

Parâmetros:

  • route -> Nome da rota que foi definida no item "11" acima e que você deseja voltar para ela. Caso este parâmetro for passado em branco '', por padrão sempre voltará para a penúltima tela que foi aberta.
  route.Back('');

Fecha o frame exibido em tela e apaga seu ponto de referência da memória

Este recurso é utilizado para esconder e destruir um frame que já tenha sido exibido em seu aplicativo durante a utilização.

Procedure: Clear();

Parâmetros:

  • route -> Nome da rota que foi definida no item "11" acima. Parâmetro obrigatório

  • params -> Um objeto onde você adicionará parâmetros que serão repassados para o frame executar alguma ação específica, como abrir um determinado registro, exibir uma determinada informação na tela. Você pode passar quantos parâmetros achar necessário. O evento utilizado para leitura destes parâmetros é o setParams(). Parâmetro opcional

  route.Clear(
    'ROUTE/CLIENTE',
    TRouteParams.new
      .AddPair('deleteCustomer', 12312)
  );

image

routecontrol's People

Contributors

douglas09 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.