象这样的弹出菜单是怎么做的?(50分)

  • 主题发起人 主题发起人 summax
  • 开始时间 开始时间
S

summax

Unregistered / Unconfirmed
GUEST, unregistred user!
|---|--------|
| | 菜单一 |
| 图| 菜单二 |
| 片| 菜单三 |
| |--------|
| | 菜单四 |
| | 菜单五 |
|___|________|

如有源码..请发 Mail; delphi@skyour.com 谢谢了!!!
 
我有个这样的控件。你要吗?
 
有源码吗? 我想自己写..不想用控件!!
 
//--彩色菜单 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
 
去 www.51delphi.com 下载dev expressbar控件,它就可以非常方便地建立楼主
的菜单,其实还有很多控件都可以。
 
delphi中的菜单组件提供了自画接口,你可以自己写,基本上方法就和Yhhe说的一样!
 
多人接受答案了。
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
872
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部