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.
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.