Sam 05/01/2013 - Actualités
Posté : sam. 5 janv. 2013 13:07
Resize de l'Agenda
Une solution a été trouvée pour éviter le scintillement des cellules du Calendrier signalé ici.
Pour rappel, ce scintillement lors d'un redimensionnement de la fenêtre est apparu avec l'utilisation de composants TShape au lieu des TPanel utilisés dans XT3, ce changement devant permettre l'affichage des mini-icônes des périodes sur les cellules, ceci étant imposssible sur un TPanel.
(Tous les composants XT scintillent au resize, la propriété DoubleBuffered ne semble pas fonctionnelle sous Delphi 5.)
Une première tentative a été de gérer la largeur de la fenêtre par bloc de 40 pixels. Impossible à utiliser en pratique à moins d'arriver à élargir une fenêtre de plus de 40 pixels avant que Windows ne s'en rende compte et le signale à XT. Le résultat était une fenêtre impossible à élargir.
La version implémentée désolidarise la largeur de la page de celle de la fenêtre. Ainsi donc la fenêtre peut être élargie librement et la page de l'Agenda est elle redimensionnée via code. Le redessin des cellules et le scintillement apparaissent donc 40 fois moins.
Le resize se fait donc ainsi :
Une solution a été trouvée pour éviter le scintillement des cellules du Calendrier signalé ici.
Pour rappel, ce scintillement lors d'un redimensionnement de la fenêtre est apparu avec l'utilisation de composants TShape au lieu des TPanel utilisés dans XT3, ce changement devant permettre l'affichage des mini-icônes des périodes sur les cellules, ceci étant imposssible sur un TPanel.
(Tous les composants XT scintillent au resize, la propriété DoubleBuffered ne semble pas fonctionnelle sous Delphi 5.)
Une première tentative a été de gérer la largeur de la fenêtre par bloc de 40 pixels. Impossible à utiliser en pratique à moins d'arriver à élargir une fenêtre de plus de 40 pixels avant que Windows ne s'en rende compte et le signale à XT. Le résultat était une fenêtre impossible à élargir.
La version implémentée désolidarise la largeur de la page de celle de la fenêtre. Ainsi donc la fenêtre peut être élargie librement et la page de l'Agenda est elle redimensionnée via code. Le redessin des cellules et le scintillement apparaissent donc 40 fois moins.
Le resize se fait donc ainsi :