delphi - painting background from TSeStyleFont -


i'm trying paint vcl style background tsestylefont in bitmap style designer .. there way draw background ?

enter image description here

i have make try : - draw object first in bitmap using drawelement . - copy current bitmap nother clean bitmap using 'bitmap.canvas.copyrect' problem : methode not work correctly objects has glyph such checkbox ...

  var   bmp, bmp2: tbitmap;   details: tthemedelementdetails;   r, rn: trect; begin   bmp := tbitmap.create;   bmp2 := tbitmap.create;   r := rect(0, 0, 120, 20);   rn := rect(0 + 4, 0 + 4, 120 - 4, 20 - 4);   bmp.setsize(120, 20);   bmp2.setsize(120, 20);   details := styleservices.getelementdetails(tthemedbutton.tbpushbuttonhot);   styleservices.drawelement(bmp.canvas.handle, details, r);   bmp2.canvas.copyrect(r, bmp.canvas, rn);   canvas.draw(10, 10, bmp2);   bmp.free;   bmp2.free;  end; 

if want draw background of buttons must use styleservices.drawelement method passing proper tthemedbutton part.

try sample

uses   vcl.styles,   vcl.themes;  {$r *.dfm}  procedure tform2.button1click(sender: tobject); var   details : tthemedelementdetails; begin   details := styleservices.getelementdetails(tbpushbuttonpressed);   styleservices.drawelement(paintbox1.canvas.handle, details, paintbox1.clientrect);    details := styleservices.getelementdetails(tbpushbuttonnormal);   styleservices.drawelement(paintbox2.canvas.handle, details, paintbox2.clientrect); end; 

enter image description here

if want draw background without corners, can adjust bounds of trect so

  details : tthemedelementdetails;   lrect   : trect; begin   lrect:=paintbox1.clientrect;   lrect.inflate(3,3);    details := styleservices.getelementdetails(tbpushbuttonpressed);   styleservices.drawelement(paintbox1.canvas.handle, details, lrect);    lrect:=paintbox2.clientrect;   lrect.inflate(3,3);   details := styleservices.getelementdetails(tbpushbuttonnormal);   styleservices.drawelement(paintbox2.canvas.handle, details, lrect); end; 

enter image description here


Comments

Popular posts from this blog

linux - xterm copying to CLIPBOARD using copy-selection causes automatic updating of CLIPBOARD upon mouse selection -

c++ - qgraphicsview horizontal scrolling always has a vertical delta -