Voglio disegnare il bordo a tema di un TEdit in un Paintbox. Il codice deve essere funzionante con Windows Vista e 7. Ho provato quanto segue. Funziona solo con Windows XP.Disegna bordo a tema di un TEdit
var
Details: TThemedElementDetails; //uses Themes
begin
if ThemeServices.ThemesEnabled then
begin
Details := ThemeServices.GetElementDetails(teEditRoot);
ThemeServices.DrawElement(PaintBox1.Canvas.Handle, Details, PaintBox1.ClientRect);
end;
end;
In Windows XP tutto è OK. Ma sotto Windows Vista e 7 il bordo è dipinto in grigio scuro. Tutti e 4 i lati nello stesso colore. Ma un TEdit sotto Vista ha un aspetto diverso: il bordo superiore ha un grigio scuro. Il bordo destro è grigio medio. I bordi sinistro e inferiore hanno un grigio chiaro. Spero tu capisca la differenza. Come dipingerlo nel modo giusto? Grazie!
Sotto http://www.delphipraxis.net/153127-theme-rahmen-vom-tedit-zeichnen.html è possibile trovare una discussione tedesca riguardante questo problema. Tuttavia nessuna soluzione. –