Loading repository data…
Loading repository data…
Douglas09 / repository
Visando problemas de controle de gerenciamento de formulários abertos no projeto delphi para aplicativos mobile principalmente, decidi implementar algo próximo as rotas existentes hoje em algumas linguagens web.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
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.
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":

route := TRouteControl.Create(Self);
6 - Em um dos eventos de abertura do form, instancie a variável criada passando de parâmetro um componente visual que herda do TComponent (TLayout/TRectangle) ou o único formulário do projeto (Self):

7 - Crie um novo frame herdando o FramePai, como por exemplo "FrameCliente";
8 - Adicione o nome da uses do novo frame criado no form;
9 - Declare uma constante do tipo string com o nome da rota que será utilizada para abrir o frame recém criado de qualquer tela dentro do sistema:
10 - Adicione o TFrame criado juntamente com a constante que você declarou como sendo o nome da rota dentro da variável "route":
route.Add(routeCliente, TFrmCliente);
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 "7, 8, 9 e 10".
Este é o processo de declaração e instanciação deste recurso.
Eventos padrões do frame
Eventos implementados: Eles precisam ser sobreescritos nos frames filhos que desejam utiliza-los
Frame1 está aberto;
Frame1 abriu o Frame2;
Frame2 executou todo seu fluxo;
Frame2 fechou e voltou para o Frame1 retornando parâmetros na propriedade IRouteParams;
Frame1 executará o evento "onReturn" independente do status atual da propriedade "FrameState" do frame1;
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)
);
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.Back('');
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)
);
