Hallo zusammen,
Ich habe zwar keine Ahnung was vor sich geht, aber ich hoffe das konnte dir weiterhelfen
Bedingt, denn jetzt weiss ich, dass etwas bei mir nicht stimmt.
Vielleicht ist noch jemand mit Win XP und D2007 hier, welcher das testen könnte.
Wenn ich "uxTheme" in die uses aufnehme und das als OnPaint-Ereignis einfüge (ist doch richtig, oder?) erhalte ich das Bild im Anhang.
Eigentlich dachte ich der Paint-Procedure direkt, wenn man eine Komponente erstellt.
Wenn ich den Code wie Du in den OnPaint-Event einfüge, dann bekomme ich bei mir eine Fehlermeldung: "Zugriffverletzung bei Adresse 00000000. Lesen von Adresse 00000000".
Dein Vorgehen hat mich aber auf die Idee des folgenden Codes gebracht, welchen ich in das OnClick-Ereignis eines Button eingefügt habe:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
lRect: TRect;
lLogFont: LOGFONT;
lhThemeData: HTHEME;
begin
lhThemeData := OpenThemeData(0, 'window');
lRect := Rect(10,20,100,200);
UxTheme.GetThemeSysFont(lhThemeData, TMT_CAPTIONFONT, lLogFont);
ShowMessage(IntToStr(lRect.Left) + ' / ' +
IntToStr(lRect.Top) + ' / ' +
IntToStr(lRect.Right) + ' / ' +
IntToStr(lRect.Bottom));
end;
Man sollte annehmen, dass dann >10 / 20 / 100 / 200< ausgegeben würde.
Bei mir kommt allerdings : 0 / 0 / 0 / 0
Hat jemand eine Idee?