{"id":28905874,"url":"https://github.com/alencargabriel/advpl-msgtimer","last_synced_at":"2026-02-01T22:01:36.806Z","repository":{"id":88196084,"uuid":"231373295","full_name":"AlencarGabriel/advpl-MsgTimer","owner":"AlencarGabriel","description":"Função AdvPL de mensagens (Alert, Info, Stop, Success, YesNo e NoYes) com Timer para fechamento automático","archived":false,"fork":false,"pushed_at":"2021-05-06T15:18:13.000Z","size":81,"stargazers_count":26,"open_issues_count":1,"forks_count":4,"subscribers_count":3,"default_branch":"master","last_synced_at":"2023-10-20T16:21:53.201Z","etag":null,"topics":["advpl","advpl-msgtimer","function","fwalertsuccess","message","msg-timer","msgalert","msginfo","msgnoyes","msgstop","msgyesno","protheus","timer","tlpp","totvs"],"latest_commit_sha":null,"homepage":"https://gabrielalencar.dev/2020/01/07/MsgTimer-Advpl-Protheus","language":"xBase","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AlencarGabriel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2020-01-02T12:01:25.000Z","updated_at":"2023-10-20T16:21:54.954Z","dependencies_parsed_at":"2023-10-20T16:31:54.941Z","dependency_job_id":null,"html_url":"https://github.com/AlencarGabriel/advpl-MsgTimer","commit_stats":null,"previous_names":[],"tags_count":0,"template":null,"template_full_name":null,"purl":"pkg:github/AlencarGabriel/advpl-MsgTimer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlencarGabriel%2Fadvpl-MsgTimer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlencarGabriel%2Fadvpl-MsgTimer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlencarGabriel%2Fadvpl-MsgTimer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlencarGabriel%2Fadvpl-MsgTimer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AlencarGabriel","download_url":"https://codeload.github.com/AlencarGabriel/advpl-MsgTimer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlencarGabriel%2Fadvpl-MsgTimer/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261131234,"owners_count":23114096,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["advpl","advpl-msgtimer","function","fwalertsuccess","message","msg-timer","msgalert","msginfo","msgnoyes","msgstop","msgyesno","protheus","timer","tlpp","totvs"],"created_at":"2025-06-21T13:39:42.023Z","updated_at":"2026-02-01T22:01:36.781Z","avatar_url":"https://github.com/AlencarGabriel.png","language":"xBase","funding_links":[],"categories":[],"sub_categories":[],"readme":"# advpl-MsgTimer\nFunção AdvPL de mensagens (Alert, Info, Stop, Success, YesNo e NoYes) com Timer para fechamento automático\n\n### Exemplo de utilização:\n\n~~~xBase\nU_MsgTimer(10, \"Mensagem\", \"Título\", MT_ISUCCES, MT_TDEFAULT)\n~~~\n\n![Exemplo Msg Timer](Examples/MsgTimer_Success_Default.png)\n\n## Finalidade\nApresentar 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. \n\n\u003e Saiba mais em meu blog: [https://gabrielalencar.dev/2020/01/07/MsgTimer-Advpl-Protheus](https://gabrielalencar.dev/2020/01/07/MsgTimer-Advpl-Protheus/)\n\n## Implementação\nCompilar o fonte `MsgTimer.prw` no seu RPO e chamar via chamada de função de usuário `U_MsgTimer()`.\n\n\u003e Caso deseje, o arquivo pode ser renomeado para `.tlpp`, o funcionamento será o mesmo porém no formato TL++.\n\n## Futuras implementações\n- [x] [Implementar Conout quando IsBlind](https://github.com/AlencarGabriel/advpl-MsgTimer/issues/1)\n\n## [Reportar problemas ou sugerir melhorias](https://github.com/AlencarGabriel/advpl-MsgTimer/issues)\n\n## Colaborar\nAssim 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](https://github.com/AlencarGabriel/advpl-MsgTimer/pulls), estarei avaliando e com certeza sendo útil estará disponível e farei uma agradecimento.\n\n---\n\n# Documentação\n\n### Lista de Parâmetros:\n  \nOrdem | Parâmetro | Tipo        | Opcional?  | Default     | Descrição\n:----:|-----------|-------------|:----------:|:-----------:|-------------------------------\n1     | nSeconds  | Numeric     | Sim        | 0           | Tempo em segundos que a mensagem será exibida antes de ser fechada\n2     | cMensagem | Characters  | Sim        | \" \"         | Descrição da mensagem [TEXT or HTML Formats]\n3     | cTitulo   | Characters  | Sim        | \" \"         | Título da mensagem [TEXT or HTML Formats]\n4     | cIcone    | Characters  | Sim        | MT_IINFO    | Ícone formato **MT_I** [ICON OF MESSAGE] ou RESOURCE compilados\n5     | nTipo     | Numeric     | Sim        | MT_TDEFAULT | Tipo **(botões)** da mensagem formato **MT_T** [TYPE OF MESSAGE]\n\n\u003e **Importante!**\n\u003e - Uso de HTML no Título e/ou Mensagem pode ocasionar problemas de dimensionamento nas mensagens;\n\u003e - O parâmetro `cIcone` pode receber qualquer *resource* compilado no RPO;\n\u003e - É possível combinar qualquer ícone com qualquer tipo de mensagem;\n\u003e - O parâmetro `nSeconds` quando 0 (zero) não apresentará o contador de tempo, nem fechará a mensagem automaticamente;\n\u003e - 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**. \n\n### Definições:\n\nDefinição   | Descrição                                            | Retorno Default\n------------|------------------------------------------------------|---------------------\nMT_TDEFAULT | Adiciona somente o botão default \"Fechar\"            | Nil\nMT_TYESNO   | Adiciona os botões \"Sim\" e \"Não\", focando no \"Sim\"   | .T.\nMT_TNOYES   | Adiciona os botões \"Não\" e \"Sim\", focando no \"Não\"   | .F.\nMT_ISUCCES  | Ícone Default Sucesso                                | Ícone não influencia no retorno\nMT_IALERT   | Ícone Default Alerta                                 | Ícone não influencia no retorno\nMT_IERROR   | Ícone Default Erro                                   | Ícone não influencia no retorno\nMT_IINFO    | Ícone Default Informação                             | Ícone não influencia no retorno\n\n## Exemplos de utilização:\n\nExemplo | Code\n--------|-------------\n![MsgTimer Alert NoYes](Examples/MsgTimer_Alert_NoYes.png)          | U_MsgTimer(10, \"Mensagem\", \"Título\", MT_IALERT, MT_TNOYES)\n![MsgTimer Error Default](Examples/MsgTimer_Error_Default.png)      | U_MsgTimer(10, \"Mensagem\", \"Título\", MT_IERROR, MT_TDEFAULT)\n![MsgTimer Info YesNo](Examples/MsgTimer_Info_YesNo.png)            | U_MsgTimer(10, \"Mensagem\", \"Título\", MT_IINFO, MT_TYESNO)\n![MsgTimer Success Default](Examples/MsgTimer_Success_Default.png)  | U_MsgTimer(10, \"Mensagem\", \"Título\", MT_ISUCCES, MT_TDEFAULT)\n\n## Compatibilidade Homologada\n\n- [x] Protheus 12 - Release 17\n- [x] Protheus 12 - Release 23\n- [x] Protheus 12 - Release 25\n- [x] Protheus 12 - Release 27\n\n## Comportamento em caso de execução sem interface `IsBlind()`\n\n![MsgTimer sem interface](Examples/Console_IsBlind.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falencargabriel%2Fadvpl-msgtimer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falencargabriel%2Fadvpl-msgtimer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falencargabriel%2Fadvpl-msgtimer/lists"}