Vcl.Controls.TControl.PaletteChanged

De RAD Studio API Documentation
Aller à : navigation, rechercher

Delphi

function PaletteChanged(Foreground: Boolean): Boolean; dynamic;

C++

DYNAMIC bool __fastcall PaletteChanged(bool Foreground);

Propriétés

Type Visibilité  Source Unité  Parent
function protected
Vcl.Controls.pas
Vcl.Controls.hpp
Vcl.Controls TControl

Description

Répond aux modifications de la palette système en réalisant la palette du contrôle.

Surchargez PaletteChanged pour modifier la manière dont le contrôle répond aux notifications Windows d'un changement de la palette système. TControl répond à ces notifications en essayant de réaliser, si elle existe, la palette du contrôle dans le contexte de périphérique en cours. Si les modifications de la palette système provoquent un changement des valeurs réelles dans la palette du contrôle, PaletteChanged invalide le contrôle pour qu'il soit redessiné en utilisant la nouvelle palette.

Windows peint la fenêtre active en utilisant une palette de premier plan alors que les autres fenêtres sont obligées d'utiliser les palettes d'arrière-plan. Les palettes d'arrière-plan correspondent approximativement aux couleurs spécifiées par la palette logique du contrôle, compte tenu des limitations imposées par l'implémentation de la palette de premier plan. Windows n'utilise qu'une seule palette de premier plan.

PaletteChanged permet au contrôle d'obtenir une nouvelle réalisation de sa palette quand la palette système change. Si Foreground a la valeur true, la fiche a été activée et le contrôle spécifie la nouvelle palette de premier plan. Si Foreground a la valeur false, une autre application ou une autre fiche a modifié la palette de premier plan, les contrôles affectés par la palette disponible doivent réaliser leurs nouvelles palettes d'arrière-plan pour correspondre au mieux à leur palette logique.

Si le contrôle n'a pas de palette logique à réaliser dans le contexte de périphérique en cours, GetPalette renvoie un handle 0 et PaletteChanged renvoie false, ce qui indique qu'aucune palette n'a été réalisée. Si GetPalette renvoie le handle d'une palette logique, PaletteChanged réalise cette palette dans le contexte de périphérique en cours et renvoie true.

Remarque :  La méthode PaletteChanged est appelée uniquement si le mode vidéo à l'exécution nécessite la gestion des palettes. C'est le cas des modes 256 couleurs, mais pas des modes 16 millions de couleurs.

Voir aussi