Vcl.Controls.TControl.PaletteChanged

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

Delphi

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

C++

DYNAMIC bool __fastcall PaletteChanged(bool Foreground);

Eigenschaften

Typ Sichtbarkeit Quelle Unit Übergeordnet
function protected
Vcl.Controls.pas
Vcl.Controls.hpp
Vcl.Controls TControl

Beschreibung

Reagiert auf Änderungen der Systempalette, indem sie die Palette des Steuerelements realisiert.

Durch Überschreiben der Methode PaletteChanged können Sie Einfluss darauf nehmen, wie das Steuerelement auf Windows-Benachrichtigungen reagiert, die auf Änderungen an der Systempalette hindeuten. TControl reagiert auf derartige Benachrichtigungen mit dem Versuch, die Palette des Steuerelements (falls vorhanden) in den aktuellen Gerätekontext zu übernehmen. Wenn von der Änderung der Systempalette auch die aktuelle Palette des Steuerelements betroffen ist, ruft PaletteChanged die Methode Invalidate des Steuerelements auf, um es mit der neuen Palette erneut zu zeichnen.

Windows zeichnet das aktive Fenster mit einer Vordergrundpalette, alle anderen Fenster mit Hintergrundpaletten. Hintergrundpaletten sind Näherungen der in der logischen Palette des Steuerelements angegebenen Farben, berücksichtigen also die Beschränkungen, die sich aus der Verwendung der Vordergrundpalette ergeben. Unter Windows kann nur eine Vordergrundpalette verwendet werden.

PaletteChanged ermöglicht dem Steuerelement das Anwenden der Palette nach einer Änderung der Systempalette. Ist Foreground true, wurde das Formular aktiviert. Das Steuerelement gibt also die neue Vordergrundpalette an. Ist Foreground false, hat eine andere Anwendung oder ein anderes Formular die Vordergrundpalette geändert. Palettenbezogene Steuerelemente müssen deshalb ihre neue Hintergrundpalette als bestmögliche Entsprechung ihrer logischen Palette verwenden.

Falls das Steuerelement keine logische Palette besitzt, die im aktuellen Gerätekontext realisiert werden kann, gibt GetPalette ein Null-Handle und PaletteChanged false zurück und zeigt damit an, dass keine Palette realisiert wurde. Wenn GetPalette das Handle einer logischen Palette zurückgibt, realisiert PaletteChanged diese Palette im aktuellen Gerätekontext und gibt true zurück.

Anmerkung:  PaletteChanged wird nur aufgerufen, wenn der Bildschirmmodus eine Palettenunterstützung erfordert. Dies ist beispielsweise im 256-Farben-Modus der Fall, nicht aber bei 16 Millionen Farben.

Siehe auch