Rafraîchissement de l'écran

De RAD Studio
Aller à : navigation, rechercher

Remonter à Présentation de la programmation relative aux graphiques


A certains moments, le système d'exploitation détermine que l'apparence des objets affichés à l'écran doit être rafraîchie. Windows génère des messages WM_PAINT que la VCL redirige vers des événements OnPaint. Si vous avez écrit un gestionnaire de l'événement OnPaint pour cet objet, il est appelé lorsque vous utilisez la méthode Refresh. Par défaut, ce gestionnaire d'événement OnPaint est nommé FormPaint. La méthode Refresh est parfois utilisée pour rafraîchir un composant sur une fiche. Par exemple, la méthode Refresh peut être appelée dans le gestionnaire d'événement OnResize de la fiche afin de réafficher des graphiques ou, si vous utilisez la VCL, pour dessiner un fond sur la fiche.

Bien que certains systèmes d'exploitation gèrent automatiquement l'affichage des zones clientes d'une fenêtre qui ne sont plus valides, Windows ne le fait pas. Pour Windows, tout dessin est considéré comme permanent. Lorsqu'une fiche ou un contrôle est temporairement masqué, par exemple lors d'un glisser-déplacer, la fiche ou le contrôle doivent repeindre la zone masquée lorsqu'elle ne l'est plus. Pour plus d'informations sur le message WM_PAINT, voir l'aide en ligne de Windows.

Lors de l'utilisation du contrôle TImage pour afficher une image graphique sur une fiche, le dessin et le rafraîchissement du graphique contenu dans le TImage sont gérés automatiquement. La propriété Picture spécifie le bitmap, le dessin ou tout autre objet graphique affiché par TImage. Vous pouvez aussi définir la propriété Proportional pour que l'image soit affichée sans distorsion dans le contrôle image. Dessiner sur un TImage crée une image persistante. Par conséquent, il n'est pas nécessaire de redessiner l'image contenue. Au contraire, le canevas d'un TPaintBox écrit directement sur le pilote de l'écran (applications VCL) et de ce fait, tout ce qui est dessiné sur le canevas du PaintBox est transitoire. Cela est vrai pour les contrôles similaires, y compris la fiche elle-même. De plus, si vous dessinez ou peignez à partir du constructeur d'un TPaintBox, vous devrez ajouter ce code dans le gestionnaire OnPaint afin que l'image soit repeinte à chaque fois que la zone cliente est invalidée.

Voir aussi