Zitat:
Das Problem scheint darab zu liegen, dass es bei klassisch ja keine Themes gibt (?)
Jupp.
Und nein, das ließt nicht das Windows Farbshema aus, sondern das Farbschema des aktiven Theme.
Über clScrollBar bis clMenuBar kommst du an die Farben der WinControls (wenn man sie sich vorher nach
RGB konvertiert), aber zum Malen sind sie auch direkt nutzbar.
Seit einer Weile, ich weiß nicht genau seit wann (daheim könnt ich mal nachsehn), könnte man auch die
Unit UxTheme verwenden.
Ist 'ne Übersetzung des Headers uxtheme.h .
Dort gibt es noch ein paar Zusatzfunktionen
Delphi-Quellcode:
procedure FreeThemeLibrary;
function InitThemeLibrary: Boolean; // läd ebenfalls in Variablen ala "GetCurrentThemeName" die Funktionszeiger
function UseThemes: Boolean;
UseThemes sieht so aus
Delphi-Quellcode:
function UseThemes: Boolean;
begin
if (ThemeLibrary > 0) then
Result := IsAppThemed and IsThemeActive
else
Result := False;
end;
//also
{UseThemes} := Assigned(IsAppThemed) and Assigned(IsThemeActive) and IsAppThemed and IsThemeActive;