用Delphi制作个性化的菜单(6)

2008-04-09 04:31:56来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

背景的填充色,$002222FF为起始色


ACanvas.FillRect(Rect(xb,ARect.Top,xb 1,ARect.Bottom));


inc(xb);


end;


ImageList1.Draw(ACanvas,ARect.Left 1,ARect.Top 1,0,true); //在左边绘制图标


ACanvas.Font.Color:=clWhite; //被选中时的字体前景色是白色


SetBkMode(ACanvas.Handle,TRANSPARENT); //必须重设背景模式为透明


ACanvas.TextOut(ARect.Left 20,ARect.Top 4,Item.Caption);//front color,which is white font


end;


end;


在各菜单项的OnDrawItem事件处(如五所示)均调用此过程,运行程序可以看到一个有背景图、所选菜单项左边有一个图标且背景色是由红到黄渐变的菜单。


㈡ 以下是实现上述个性化菜单的自定义过程DrawItem的另一个示例的代码。为一个有图标的弹出式菜单,不作过多的说明了。


procedure TForm1.DrawItem(Item:TMenuItem; ACanvas: TCanvas; ARect: TRect; Selected: Boolean);


var


i,xb:integer;


begin


//设置字体和其前景色


ACanvas.Font := Screen.IconFont;


ACanvas.Brush.Color := clBtnFace;


ACanvas.FillRect(ARect);


ACanvas.TextOut(ARect.Left 20,ARect.Top 4,Item.Caption);



if Selected then begin


//绘制当前选择的菜单项


xb:=0;


for i:=0 to ARect.Right do begin


ACanvas.Brush.Color :=clTeal i*$100;//gradient back color


ACanvas.FillRect(Rect(xb,ARect.Top,xb 1,ARect.Bottom));

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Borland IDE 常用热键简介 v0.1

下一篇:[笔记] FMX 在 iOS 平台主窗体 DoubleTap 手势,要慎用!