Code Monkey home page Code Monkey logo

advpl-msgtimer's Introduction

advpl-MsgTimer

Função AdvPL de mensagens (Alert, Info, Stop, Success, YesNo e NoYes) com Timer para fechamento automático

Exemplo de utilização:

U_MsgTimer(10, "Mensagem", "Título", MT_ISUCCES, MT_TDEFAULT)

Exemplo Msg Timer

Finalidade

Apresentar uma mensagem no formato padrão do Protheus 12, permitindo o fechamento automático caso o usuário não interaja com a mensagem, evitando sessões abertas por muito tempo desnecessariamente.

Saiba mais em meu blog: https://gabrielalencar.dev/2020/01/07/MsgTimer-Advpl-Protheus

Implementação

Compilar o fonte MsgTimer.prw no seu RPO e chamar via chamada de função de usuário U_MsgTimer().

Caso deseje, o arquivo pode ser renomeado para .tlpp, o funcionamento será o mesmo porém no formato TL++.

Futuras implementações

Colaborar

Assim como meu objetivo é ajudar aqueles que precisam, caso você faça uma melhoria ou encontre algum problema no projeto, fique a vontade para ajustar e me mandar seu Pull Request, estarei avaliando e com certeza sendo útil estará disponível e farei uma agradecimento.


Documentação

Lista de Parâmetros:

Ordem Parâmetro Tipo Opcional? Default Descrição
1 nSeconds Numeric Sim 0 Tempo em segundos que a mensagem será exibida antes de ser fechada
2 cMensagem Characters Sim " " Descrição da mensagem [TEXT or HTML Formats]
3 cTitulo Characters Sim " " Título da mensagem [TEXT or HTML Formats]
4 cIcone Characters Sim MT_IINFO Ícone formato MT_I [ICON OF MESSAGE] ou RESOURCE compilados
5 nTipo Numeric Sim MT_TDEFAULT Tipo (botões) da mensagem formato MT_T [TYPE OF MESSAGE]

Importante!

  • Uso de HTML no Título e/ou Mensagem pode ocasionar problemas de dimensionamento nas mensagens;
  • O parâmetro cIcone pode receber qualquer resource compilado no RPO;
  • É possível combinar qualquer ícone com qualquer tipo de mensagem;
  • O parâmetro nSeconds quando 0 (zero) não apresentará o contador de tempo, nem fechará a mensagem automaticamente;
  • Cuidado ao utilizar mensagem com Timer e tipo NoYes ou YesNo, pois o retorno default caso o tempo exceda será o botão focado: No ou Yes.

Definições:

Definição Descrição Retorno Default
MT_TDEFAULT Adiciona somente o botão default "Fechar" Nil
MT_TYESNO Adiciona os botões "Sim" e "Não", focando no "Sim" .T.
MT_TNOYES Adiciona os botões "Não" e "Sim", focando no "Não" .F.
MT_ISUCCES Ícone Default Sucesso Ícone não influencia no retorno
MT_IALERT Ícone Default Alerta Ícone não influencia no retorno
MT_IERROR Ícone Default Erro Ícone não influencia no retorno
MT_IINFO Ícone Default Informação Ícone não influencia no retorno

Exemplos de utilização:

Exemplo Code
MsgTimer Alert NoYes U_MsgTimer(10, "Mensagem", "Título", MT_IALERT, MT_TNOYES)
MsgTimer Error Default U_MsgTimer(10, "Mensagem", "Título", MT_IERROR, MT_TDEFAULT)
MsgTimer Info YesNo U_MsgTimer(10, "Mensagem", "Título", MT_IINFO, MT_TYESNO)
MsgTimer Success Default U_MsgTimer(10, "Mensagem", "Título", MT_ISUCCES, MT_TDEFAULT)

Compatibilidade Homologada

  • Protheus 12 - Release 17
  • Protheus 12 - Release 23
  • Protheus 12 - Release 25
  • Protheus 12 - Release 27

Comportamento em caso de execução sem interface IsBlind()

MsgTimer sem interface

advpl-msgtimer's People

Contributors

alencargabriel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

advpl-msgtimer's Issues

Implementar Conout quando IsBlind

Implementar comportamento para não mostrar as mensagens em tela quando a execução estiver em modo Blind (sem interface).

Apresentar uma mensagem no console assim como é feito pelas funções padrões.

Travar os botões por determinado tempo.

Sugiro acrescentar algum parâmetro para travar os botões até o tempo finalizar, quer dizer, só permitir clicar após o cronometro zerar.
Exemplo de uso:
Para aquelas situações que o usuário nem lê o que tem na mensagem e já sai falando que é um erro, muitas vezes a solução esta no texto e eles nem leem.
Desta forma a mensagem fica em tela por exemplo por 5 segundos e assim o usuário lê.

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.