Alerte personnalisee style msn messenger - apparition progressive d'une form


Description


> LES FONCTIONNALITES <


Il s'agit d'une alerte du genre de celles de MSN Messenger très personnalisable.
Vous pouvez définir :
- le titre
- le message
- l'icône de l'alerte
- la vitesse de montée
- le temps d'affichage
- l'effet sonore (beep ou pas beep)
- l'effet produit lors d'un clic sur l'alerte
Le code de l'alerte est fourni avec un programme d'exemple afin de mieux comprendre son fonctionnement.

> L'UTILISATION <


Pour que l'alerte soit fonctionnelle, vous devez :
1. Ajouter l'unité "AlertMsg.pas" au projet
2. Ajouter "AlertMsg" dans la clause uses de la form qui appelera l'alerte

Ensuite, pour afficher une alerte, vous devez appeler la procédure AlertMsgBox déclarée comme suit :
AlertMsgBox(ATitle, AText: string; AIcon:integer=0; ABeep:boolean=false; WaitBeforeDown:integer=1000; StepTime:integer=10; OnTextClick:TNotifyEvent=nil);
Comme vous pouvez le remarquer, de nombreux paramètres sont acceptés de manière implicite lors de l'appel de la procédure, ce qui facilite son utilisation. Ainsi, l'appel suivant sera correct, bien que peu personnalisé :
AlertMsgBox('Titre', 'Texte');

Si une alerte est déjà en cours d'affichage lors de la demande d'affichage d'une autre alerte, l'affichage de cette dernière sera différée.

> LES PARAMETRES D'ENTREE DE LA PROCEDURE <


# Les variables d'entrée ATitle et AText sont de type string, et définissent respectivement le titre et le texte du message. Notez qu'un texte trop long ne sera pas forcément affiché en entier sur l'alerte.
# La variable d'entrée AIcon, de type integer, définit l'index de l'icône affichée lors de l'apparition de l'alerte. Des constantes ont été définies dans le code de l'alerte afin de faciliter l'utilisation des icônes dans cette procédure. En voici la liste, accompagnée de leur valeurs respectives :
ICON_NONE=0; ICON_INFO=1; ICON_QUESTION1=2; ICON_QUESTION2=3; ICON_WARNING1=4;
ICON_WARNING2=5; ICON_QUIT=6; ICON_STOP=7; ICON_GO=8; ICON_SECURE=9;
ICON_VALIDATE=10; ICON_SEARCH=11; ICON_SENDMAIL=12; ICON_NEWMAIL=13; ICON_USER=14;
# La variable ABeep, de type boolean, définit si un bip sonore doit avoir lieu lors de l'affichage de l'alerte.
# La variable WaitBeforeDown, de type integer, définit le temps (en millisecondes) d'affichage de l'alerte une fois en haut et avant la descente.
# La variable StepTime, également de type integer, définit le temps (en ms aussi) séparant deux états de la montée de l'alerte (cad. 1 pixel de différence).
# Enfin, la variable OnTextClick, de type TNotifyEvent, définit la procédure exécutée lors d'un clic sur l'alerte. Par défaut, elle équivaut à nil, c'est à dire qu'aucune procédure n'est lancée lors du clic. Si cette variable se voit assigner une procédure valide, le curseur lors du passage de la souris sur l'alerte prendra la forme d'une main et le clic sur l'alerte lancera cette procédure. Attention : pour que la procédure placée en paramètre soit valide, il faut qu'elle accepte comme seul et unique paramètre "(Sender: TObject)".
Ainsi, la procédure
MaProc;
ne sera pas valide, alors que
MaProc(Sender: TObject);
sera valide.
Cette restriction est dûe au fait que la procédure résultant de l'événement initial (le clic) est la procédure OnClick du Label, qui accepte comme paramètre (Sender: TObject).

Source / Exemple :


Définition :
AlertMsgBox(ATitle, AText: string; AIcon:integer=0; ABeep:boolean=false; WaitBeforeDown:integer=1000; StepTime:integer=10; OnTextClick:TNotifyEvent=nil);

Exemples d'appels corrects :
 AlertMsgBox('Bonjour!','Bienvenue !');
 AlertMsgBox('Attention !','Une erreur est survenue'#13#10'sur le disque.',ICON_WARNING1,true,2000,40);
 AlertMsgBox('Résultat','La recherche a abouti à'#13#10'13 résultats.',ICON_SEARCH,true);
 AlertMsgBox('Bonjour!','Vous êtes maintenant connecté !',ICON_USER,false,4000,10,ExempleOfCalledProc); ***

      • Ici, ExempleOfCalledProc doit être définie comme suit, avec le bon paramètre :
type TForm1 = class(TForm) procedure ExempleOfCalledProc(Sender: TObject); [...] procedure TForm1.ExempleOfCalledProc(Sender: TObject); begin ShowMessage('Vous avez cliqué sur le message !!') end;

Conclusion :


Merci à tous ceux qui ont posté des commentaires pour leurs idées et corrections ;)
Pas de bugs connus dans cette version ! Si toutefois vous avez des conseils ou si vous voyez des améliorations à apporter, n'hésitez pas ! :p

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.