我是这样实现的
spbt是speedbutton组件var bt:TBitmap;
begin
bt:=TBitmap.create;
bt.canvas.brush.color:=rgb(23,42,145);
bt.canvas.textout(12,10,'测试');
bt.canvas.fillrect(rect(0,0,spbt.weight,spbt.height));
spbt.glyph:=bt;
运行后spbt的界面颜色没有改变,还是透明色,有什么办法可以让这个组件的颜色改变
spbt是speedbutton组件var bt:TBitmap;
begin
bt:=TBitmap.create;
bt.canvas.brush.color:=rgb(23,42,145);
bt.canvas.textout(12,10,'测试');
bt.canvas.fillrect(rect(0,0,spbt.weight,spbt.height));
spbt.glyph:=bt;
运行后spbt的界面颜色没有改变,还是透明色,有什么办法可以让这个组件的颜色改变
bt.Height:=25;
bt := TBitmap.create;
bt.Height := spbt.Height;
bt.Width := spbt.Width; bt.canvas.brush.color:=rgb(23,42,145);
//这个要在前面,要不然你后面的文字要被盖住
bt.canvas.fillrect(rect(0,0,spbt.width,spbt.height));
//把图片的右下角的Color跟背景色不一样,要不然透明
bt.canvas.brush.color := clBlack;
bt.canvas.fillrect(rect(0,bt.Height-1,1,bt.Height));
//bt.Canvas.Pen.Color := clRed;
bt.canvas.textout(12,10,'测试'); spbt.glyph:=bt;
bt.Free; //