如标题所示,最好给出详细的代码!多谢!!!

解决方案 »

  1.   

    严重关注!!!!楼主是不是自己开发控件啊!D7自带的TActionMainMenu就可以做出你要的效果,但你不用控件!!!!
      

  2.   

    我用的是Delphi6,自己也想看看这个东西怎么弄的!!!
      

  3.   

    为什么不看看VCL的源码?应该有帮助的
      

  4.   

    VCL源代码在哪里?
    希望大家踊跃发言!!!
      

  5.   

    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;
      

  6.   

    我的方法基本上和feng93017(Edge) 的一样,不过我是直接在canvan中画图,效果非常不错,甚至可以是动画。既然提供了canvan,做什么都行。呵呵。在canvan中画图,大家不会不懂吧。
      

  7.   

    学习,看vcl代码,直接在ide环境下看啊
      

  8.   

    我用过一个xpmenu控件可以完成这个功能。下载地址自己去找吧。我在delphi5/6中都运行过没有问题。把那个单元加进去就可以了,不用加入新的控件。应该说这个xpmenu也不是一个控件。
    不过功能不是很强大。