Téléchargé 3 fois
Vote des utilisateurs


Détails
Licence : Non renseignée
Mise en ligne le 21 septembre 2025
Plate-formes :
Linux, Mac
Langue : Français
Référencé dans
Navigation
Fenêtre de notification personnalisée
Fenêtre de notification personnalisée
PRÉSENTATION :
Le Hint est une technique simple de notification. Ici, on a créé une fenêtre de notification selon trois méthodes différentes. Un composant natif "TpopupNotifier" existe dans la palette "Common Controls" dans Lazarus mais nous constatons que nous ne pouvons pas modifier tous les paramètres et constantes internes. Il n'y a pas d'équivalent direct en Delphi mais d'équivalent natif direct dans Delphi. Cependant, on trouvera le composant « TNotificationCenter » pour FireMonkey et multiplateforme aux possibilités plus grandes, et aussi un composant de notification visuelle de type « bulle » TBalloonHint de la VCL ou dans des librairies tiers RxLib…
Le téléchargement du Zip est composé de trois sous répertoires, un par code exemple et une présentation succincte de chaque projet utilisable en différentes plateformes. Les Delphistes pourront adapter assez facilement les projet 2 ou l'on créer entièrement une fenêtre de notification.
OBJECTIF DU PRÉSENT CODE
Nous proposons quelques approches alternatives permettant une personnalisation minimale. Trois projets sont décrits, les techniques employées sont assez simples à mettre en œuvre et de difficultés progressives. Voici les méthodes employées pour les trois projets :
🔹 Projet 1 : "PopupNotifier" Basique - Manipulation Composants Internes"
Technique centrale : l’utilisation est simple dans une version rapide où l’on n’exige pas une personnalisation poussée.
Nous accédons aux labels internes via vNotifierForm qui permet de corriger le centrage du texte. Pour les bords arrondis, on utilise la technique des régions…
Ce composant source de Lazarus est cependant limité dans la version 4.2. Le Texte peut être centré, mais pas le titre.
On a AutoSize := true forcé dans le HandleResize de la source Lazarus, la largeur est recalculée automatiquement à chaque redimensionnement, la position Left est forcé par IconAdjust dans la source. Bref, toute modification du code n’y change rien, elles sont écrasées systématiquement…
🔹 Projet 2 : "Popup Manuelle - Création TForm + Régions Windows"
Technique centrale : Création complète d'une fenêtre popup personnalisée avec TForm, Timer de décompte, et application de régions Windows pour bords arrondis.
La création est totale en utilisant une fenêtre TForm : Popup avec BorderStyle := bsNone. Les composants sont dynamiques : Création de TButton, TLabel avec positionnement précis.
Utilisation des Régions Windows : CreateRoundRectRgn + SetWindowRgn pour bords arrondis.
On y ajoute un Timer avancé : Gestion événementielle avec PopupTimerTimer, PopupTimerStartTimer et PopupTimerStopTimer.
Les couleurs du Fond sont aléatoires : Génération RGB dans la palette des couleurs pastel..
🔹 Projet 3 : On revient vers le composant "PopupNotifier".
C’est un popup hybride "PopupNotifier Hybride - Natif + Corrections Avancées"
Technique centrale : Utilisation optimisée du TPopupNotifier avec corrections sophistiquées (centrage précis, décompte intégré, bords arrondis) par manipulation des composants internes avec des vérifications de sécurité.
On utilise un Format textuel stable, une structure de texte constante pour éviter les recalculs de repositionnements.
Son principal avantage est la facilité d’étendre ses fonctionnalités. Son inconvénient est qu’il demande plus de connaissance des techniques Lazarus…
POUR LA SUITE
Je pense qu’il serait intéressant de développer un composant spécifique pour des notifications aux présentations diverses et entièrement personnalisable...
Le Hint est une technique simple de notification. Ici, on a créé une fenêtre de notification selon trois méthodes différentes. Un composant natif "TpopupNotifier" existe dans la palette "Common Controls" dans Lazarus mais nous constatons que nous ne pouvons pas modifier tous les paramètres et constantes internes. Il n'y a pas d'équivalent direct en Delphi mais d'équivalent natif direct dans Delphi. Cependant, on trouvera le composant « TNotificationCenter » pour FireMonkey et multiplateforme aux possibilités plus grandes, et aussi un composant de notification visuelle de type « bulle » TBalloonHint de la VCL ou dans des librairies tiers RxLib…
Le téléchargement du Zip est composé de trois sous répertoires, un par code exemple et une présentation succincte de chaque projet utilisable en différentes plateformes. Les Delphistes pourront adapter assez facilement les projet 2 ou l'on créer entièrement une fenêtre de notification.
OBJECTIF DU PRÉSENT CODE
Nous proposons quelques approches alternatives permettant une personnalisation minimale. Trois projets sont décrits, les techniques employées sont assez simples à mettre en œuvre et de difficultés progressives. Voici les méthodes employées pour les trois projets :
🔹 Projet 1 : "PopupNotifier" Basique - Manipulation Composants Internes"
Technique centrale : l’utilisation est simple dans une version rapide où l’on n’exige pas une personnalisation poussée.
Nous accédons aux labels internes via vNotifierForm qui permet de corriger le centrage du texte. Pour les bords arrondis, on utilise la technique des régions…
Ce composant source de Lazarus est cependant limité dans la version 4.2. Le Texte peut être centré, mais pas le titre.
On a AutoSize := true forcé dans le HandleResize de la source Lazarus, la largeur est recalculée automatiquement à chaque redimensionnement, la position Left est forcé par IconAdjust dans la source. Bref, toute modification du code n’y change rien, elles sont écrasées systématiquement…
🔹 Projet 2 : "Popup Manuelle - Création TForm + Régions Windows"
Technique centrale : Création complète d'une fenêtre popup personnalisée avec TForm, Timer de décompte, et application de régions Windows pour bords arrondis.
La création est totale en utilisant une fenêtre TForm : Popup avec BorderStyle := bsNone. Les composants sont dynamiques : Création de TButton, TLabel avec positionnement précis.
Utilisation des Régions Windows : CreateRoundRectRgn + SetWindowRgn pour bords arrondis.
On y ajoute un Timer avancé : Gestion événementielle avec PopupTimerTimer, PopupTimerStartTimer et PopupTimerStopTimer.
Les couleurs du Fond sont aléatoires : Génération RGB dans la palette des couleurs pastel..
🔹 Projet 3 : On revient vers le composant "PopupNotifier".
C’est un popup hybride "PopupNotifier Hybride - Natif + Corrections Avancées"
Technique centrale : Utilisation optimisée du TPopupNotifier avec corrections sophistiquées (centrage précis, décompte intégré, bords arrondis) par manipulation des composants internes avec des vérifications de sécurité.
On utilise un Format textuel stable, une structure de texte constante pour éviter les recalculs de repositionnements.
Son principal avantage est la facilité d’étendre ses fonctionnalités. Son inconvénient est qu’il demande plus de connaissance des techniques Lazarus…
POUR LA SUITE
Je pense qu’il serait intéressant de développer un composant spécifique pour des notifications aux présentations diverses et entièrement personnalisable...
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.