怎么不用控件做一个图形菜单(象Windows开始菜单那样)?? 如标题所示,最好给出详细的代码!多谢!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 严重关注!!!!楼主是不是自己开发控件啊!D7自带的TActionMainMenu就可以做出你要的效果,但你不用控件!!!! 我用的是Delphi6,自己也想看看这个东西怎么弄的!!! 为什么不看看VCL的源码?应该有帮助的 VCL源代码在哪里?希望大家踊跃发言!!! 1.新建一个PopupMenu1.设置OwnerDraw:=True;2.添加一个菜单项m1.设置m1.Caption:='';m1.Enabled:=False;3.添加一些你需要的菜单项m2,m3,m4,…….其中设置m2.Break:=mbBreak;4.在m1的DrawItem中:procedure TForm1.m1DrawItem(Sender: TObject; ACanvas: TCanvas;ARect: TRect; Selected: Boolean);vari:word;dy,y:real;lf:TLogFont;tf:TFont;begin//画渐进色背景dy:=(ARect.Bottom - ARect.Top)/256;y:=0;for i:=255 downto 0 dobeginAcanvas.brush.color:=RGB(255-i,255-i,255);Acanvas.fillrect(rect(0,round(y),ARect.Right - ARect.Left,round(y+dy)));y:=y+dy;end;//写字With ACanvas doBeginBrush.Style:=bsClear;Font.Name:='宋体';Font.Size:=12;Font.Color:=clred;tf:=TFont.Create;tf.Assign(Font);GetObject(tf.Handle,sizeof(lf),@lf);lf.lfEscapement:=900;tf.Handle:=CreateFontIndirect(lf);Font.Assign(tf);tf.Free;TextOut(ARect.Left +2,ARect.Bottom -2,'弹出菜单');End;end;5.在m1的MeasureItem中:procedure TForm1.m1MeasureItem(Sender: TObject; ACanvas: TCanvas;var Width, Height: Integer);begin/////////Width:= 10;Height:= (PopupMenu1.Items.Count - 1) * 19;end; 我的方法基本上和feng93017(Edge) 的一样,不过我是直接在canvan中画图,效果非常不错,甚至可以是动画。既然提供了canvan,做什么都行。呵呵。在canvan中画图,大家不会不懂吧。 学习,看vcl代码,直接在ide环境下看啊 我用过一个xpmenu控件可以完成这个功能。下载地址自己去找吧。我在delphi5/6中都运行过没有问题。把那个单元加进去就可以了,不用加入新的控件。应该说这个xpmenu也不是一个控件。不过功能不是很强大。 一个初级问题。。 TWebBrowser求助,怎么禁止浏览? 帮忙找错 如何更改exe文件的图标(在线等) 春节快到了,特散分快了接啊? 多层的实现,怎样使用中间件将各层连接起来? 在Win2000/Xp下屏蔽一些系统按键!!!!!!! 為什麼會越界?????'List index out of bounds (1)' 我是初学者,请介绍几本delphi的书。马上送分!! 在Delphi中一个派生类如何调用前两重祖先的虚函数? 关于ACCESS进行更新的问题 小问题!!!!!!
希望大家踊跃发言!!!
不过功能不是很强大。