//--彩色菜单 Begin
const Mc=6;
var
i,iH,Ind,iW,iRate: Integer;
rTemp: TRect;
iG1: Integer;
procedure TToolsForm.DrawItem(Sender: TMenuItem; ACanvas: TCanvas;
ARect: TRect; Selectd: Boolean; strOut: String);
var j: Integer;
begin
i:=ARect.Bottom-ARect.Top;
Ind:=Sender.MenuIndex;
iH:=Round(Image1.Height/Mc*Ind);
StretchBlt(ACanvas.Handle,ARect.Left,ARect.Top,iW,i,Image1.Canvas.Handle,0,iH,Image1.Width,Round(Image1.Height/Mc),SRCCOPY);
if Selectd then begin
ACanvas.Font.Color:=clWhite;
rTemp:=ARect;
rTemp.Left:=rTemp.Left+iW;
iG1:=Round((rTemp.Right-rTemp.Left)/10);
rTemp.Right:=rTemp.Left+iG1;
for j:=0 to 9 do begin
ACanvas.Brush.Color:=RGB(0,0,j*25);
ACanvas.FillRect(rTemp);
rTemp.Left:=rTemp.Left+iG1;
rTemp.Right:=rTemp.Right+iG1;
end;
end else begin
ACanvas.Brush.Color:=cl3DLight;
rTemp:=ARect;
rTemp.Left:=rTemp.Left+iW;
ACanvas.FillRect(rTemp);
ACanvas.Font.Color:=clBlack;
end;
ACanvas.Brush.Style:=bsClear;
ACanvas.TextOut(ARect.Left+iW+5,ARect.Top,strOut);
end;
procedure TToolsForm.N2DrawItem(Sender: TObject; ACanvas: TCanvas;
ARect: TRect; Selected: Boolean);
begin
DrawItem(TMenuItem(Sender),ACanvas,ARect,Selected,(Sender as TMenuItem).Hint);
end;
procedure TToolsForm.N2MeasureItem(Sender: TObject; ACanvas: TCanvas;
var Width, Height: Integer);
begin
Height:=ACanvas.TextHeight('彩色菜单')+5;
Width:=ACanvas.TextWidth('彩色菜单')+5;
iRate:=Round(Image1.Height/(Height*Mc));
iW:=Round(Image1.Width/iRate);
Width:=Width+iW;
end;
//--彩色菜单 End