Popup alerte style msn avast

Description

Je suis tombé sur la source de nie69, et je l'ai réécris pour mes besoins.

Je voulais gérer une liste d'alerte afin qu'elle s'affiche à la suite.

j'ai utilisé un thread et synchronize, ce qui permet d'avoir quelque chose d'assez rapide, surtout en sortie d'application.

Source / Exemple :


//--------------------------------------------
// auteur : ouiouioui
// e-mail : ouiouioui10@hotmail.com
// version 1.0
// basé sur une idée originale de ni69 < http://www.delphifr.com/codes/ALERTE-PERSONNALISEE-STYLE-MSN-MESSENGER-APPARITION-PROGRESSIVE-FORM_29551.aspx >
// faites-en ce que vous voulez
//--------------------------------------------
Unit Unit1;

Interface

Uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ThreadAlertMsg, StdCtrls;

Type
  TForm1 = Class(TForm)
    Button1: TButton;
    Button2: TButton;
    Procedure Button1Click(Sender: TObject);
    Procedure FormCreate(Sender: TObject);
    Procedure FormDestroy(Sender: TObject);
    Procedure Button2Click(Sender: TObject);
  Private
    ThreadAlertMsg: TThreadAlertMsg;
    Procedure MsgTest(Sender: TObject);
  Public
    { Déclarations publiques }
  End;

Var
  Form1: TForm1;

Implementation

{$R *.dfm}

Procedure TForm1.MsgTest(Sender: TObject);
Begin
  MessageDlg('Vous avez cliqué l''alerte!', mtInformation, [mbOK], 0);
End;

Procedure TForm1.Button1Click(Sender: TObject);
Begin
// la méthode AddAlert prend 6 paramètres, les deux premiers sont obligatoires
// les quatre autres sont facultatifs.
// il s'agit en premier du titre puis du texte de la popup. Exemple:
  ThreadAlertMsg.AddAlert('alert 1', 'fdfggh gftfg ggghggtt rf');
// vient ensuite les paramètres optionnels:
// - le nom de l'icône, il y en a 26 inclus, regardez dans le dossier image
// pour trouver leur nom, ne spécifiez pas l'extension.
// - le sons, ça peut être un fichier existant comme l'exemple ci-dessous:
  ThreadAlertMsg.AddAlert('alert 2', 'fvgfggvggg    ggghgh         fvbvfvb hg', 'info', 'C:\WINDOWS\Media\Windows XP Démarrage.wav', nil, 3000);
// ou le mot beep ça déclenchera le beep de l'ordinateur comme l'exemple ci-dessous:
  ThreadAlertMsg.AddAlert('cool', 'fvgfggvggg    ggghgh   fvbvfvb hg', 'chat', 'beep', nil, 2000);
// ou le nom d'un des fichiers contenus dans le dossier sons, ne spécifiez pas
// l'extension, comme les exemples ci-dessous:
  ThreadAlertMsg.AddAlert('attention', 'fvgfggvggg    oui   fvbvfvb hg', 'security', 'promotion', nil, 1000);
  ThreadAlertMsg.AddAlert('bonjour', 'fvgfggvggg    non   dff vfggf hg', 'user', 'Blip', nil, 5000);
// - le nom d'une procédure à déclencher lorsque l'utilisateur clique le message
// comme l'exemple ci-dessous:
  ThreadAlertMsg.AddAlert('yesss', 'Clique moi pour déclencher une procédure', 'heart', 'succ', MsgTest, 3000);
// - le temps durant laquelle l'alerte doit rester visible avant de redescendre
// ci-dessous l'alerte restera trois secondes, le temps par défaut étant de cinq secondes
  ThreadAlertMsg.AddAlert('attention', 'fvgfggvggg    8    fgghhj ghghgg fgghgh gggg     fvbvfvb hg', 'tools', 'newalert', nil, 3000);

// voici une alerte avec les paramètres facultatif par défaut:
  ThreadAlertMsg.AddAlert('titreee', 'textt', '', '', nil, 5000);
End;

Procedure TForm1.Button2Click(Sender: TObject);
Begin
  Close;
End;

Procedure TForm1.FormCreate(Sender: TObject);
Begin
  ThreadAlertMsg := TThreadAlertMsg.Create;
End;

Procedure TForm1.FormDestroy(Sender: TObject);
Begin
  ThreadAlertMsg.Terminate;
End;

End.

Conclusion :


C'est mon 1er partage youpi ^^ Comme tout code on peut toujours améliorer mais pour mes besoins sa me suffit.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.