Bonjour,
Je vous propose un nouvel �l�ment � utiliser : 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...
Qu'en pensez-vous ?
Partager