Toast4D
Biblioteca de notificação do Toast para Delphi VCL - inspirada no ngx-toastr do Angular
- Active · last change 3-15-2026
- ★ 4 on GitHub
README
🍞 Toast4D
Biblioteca de notificações toast para Delphi VCL — inspirada no ngx-toastr do Angular.
Compatível com Delphi 11 Alexandria e superior.
✨ Funcionalidades
| Funcionalidade | Detalhes |
|---|---|
| 4 tipos visuais | Success, Error, Warning, Info |
| 6 posições | TopRight, TopLeft, BottomRight, BottomLeft, TopCenter, BottomCenter |
| Animações | Slide-in + Fade-in na entrada; Slide-out + Fade-out na saída |
| Auto-dismiss | Fecha automaticamente após duração configurável (padrão: 4s) |
| Barra de progresso | Indicador visual do tempo restante |
| Pause on hover | Pausa o timer quando o mouse está sobre o toast |
| Click to dismiss | Clique em qualquer lugar para fechar |
| Botão fechar | Botão × no canto superior direito |
| Empilhamento | Múltiplos toasts na mesma posição, reorganizados ao fechar |
| Sem auto-fechar | Duration := 0 para toast permanente |
| Design moderno | Fundo escuro, cores vibrantes, cantos arredondados |
📁 Estrutura
Toast4D/
????????? src/
??? ????????? Toast4D.Types.pas ??? Enums, TToastOptions, constantes
??? ????????? Toast4D.Theme.pas ??? Paleta de cores e ??cones por tipo
??? ????????? Toast4D.Animate.pas ??? Engine de anima????o (slide + fade)
??? ????????? Toast4D.Form.pas ??? TToastForm: janela flutuante sem borda
??? ????????? Toast4D.Manager.pas ??? TToastManager: fila e ciclo de vida
??? ????????? Toast4D.pas ??? Facade p??blica (entry point)
????????? demo/
????????? Toast4DDemo.dpr ??? Projeto de demonstra????o
????????? Toast4DDemo.dproj
????????? MainForm.pas
????????? MainForm.dfm🚀 Instalação
- Abra as Project Options do seu projeto Delphi
- Em Library path, adicione o caminho para a pasta
src/ - Adicione
Toast4Dna cláusulausesdo seu form/unit
📖 Uso
Básico
uses Toast4D;
// Tipos prontos
TToast.Success('Salvo!', 'Registro gravado com sucesso.');
TToast.Error('Erro!', 'Falha ao conectar ao servidor.');
TToast.Warning('Atenção', 'Sessão expira em 1 minuto.');
TToast.Info('Dica', 'Pressione F5 para atualizar.');Com opções completas
uses Toast4D, Toast4D.Types;
var Opts := TToastOptions.Default;
Opts.Title := 'Upload concluído';
Opts.Message := 'Arquivo enviado com sucesso.';
Opts.ToastType := ttSuccess;
Opts.Position := tpBottomRight;
Opts.Duration := 6000; // 6 segundos
Opts.ShowProgressBar := True;
Opts.ShowCloseButton := True;
Opts.ClickToDismiss := True;
TToast.Show(Opts);Toast permanente (sem auto-fechar)
var Opts := TToastOptions.Default;
Opts.Title := 'Atenção crítica';
Opts.Duration := 0; // 0 = não fecha automaticamente
TToast.Show(Opts);Fechar todos
TToast.DismissAll;Configuração global
// No FormCreate ou initialization
TToast.DefaultPosition := tpTopRight; // Posição padrão
TToast.DefaultDuration := 5000; // 5 segundos
TToast.ShowProgressBar := True;
TToast.ShowCloseButton := True;
TToast.ClickToDismiss := True;
TToast.MaxToastsPerPosition := 5;🎨 Temas
| Tipo | Acento | Ícone |
|---|---|---|
ttSuccess |
🟢 #4ADE80 |
✓ |
ttError |
🔴 #F87171 |
✕ |
ttWarning |
🟡 #FBBF24 |
⚠ |
ttInfo |
🔵 #60A5FA |
ℹ |
📌 Referência da API
TToast.Success(ATitle, AMessage: string)
TToast.Error (ATitle, AMessage: string)
TToast.Warning(ATitle, AMessage: string)
TToast.Info (ATitle, AMessage: string)
TToast.Show (AOptions: TToastOptions)
TToast.DismissAll📜 Licença
MIT License — livre para uso pessoal e comercial.

