可以作到;
coolbar上边放一个toolbar;
建几个toolbutton;
设置toolbutton的style属性;
toolbutton.Menuitem:=N1//N1就是想要下接的菜单的的一个选项;
//注:应该将toolbar.showcaption:=true;

解决方案 »

  1.   

    “用标准的delphi 5 vcl”直接用好像是不能得
      

  2.   

    这里提供你用TCoolBar制作工具栏的方式,
      还可以用ToolBar、TControlBar  制作工具栏的方法,也很爽。
      不过只允许我放这点字符,只能割爱了。
      全部文字都选至本人的著书,绝无D版。
      其中插图无法在这显示,请谅解。
      ToolBar介绍见:http://www.csdn.net/expert/topic/546/546288.xml?temp=.39931897.2.3 使用CoolBar组件
    除了ToolBar组件,Delphi还提供了CoolBar组件,可以用来设置工具栏。CoolBar组件位于组件板的[Win32]选项卡上。和ToolBar组件不同,CoolBar组件是一个容器型组件,利用其他组件来设计工具栏,这些组件在CoolBar组件中以TCoolBand类型对象的形式出现,每一个TCoolBand对象还可单独设置属性。
    下面仍利用前面的例程5-2来介绍如何利用CoolBar组件设计工具栏。
    1.打开应用程序
    启动Delphi,从[File]菜单中选取[Reopen]命令或[Open Project]命令,打开应用文件Project5_2。此时,应用程序将打开例程5-2窗体,修改Form1的Caption属性为“工具栏设计”。
    2.添加CoolBar容器中将包括的组件
    CoolBar将包括两个组件,一个是添加并象例程7-2一样设置好的ToolBar组件,另一个是ComboBox组件——ComboBox1,并利用Items属性为其添加10、12、15、18、2l、24六个选项条目;再用Text属性将其缺省选项改成10。我们将用这两个组件组合成一个CoolBar工具栏。
    3.添加CoolBar组件
    下面往窗体中添加一个CoolBar组件—CoolBar1,并将其AutoSize属性设置为True。
    4.添加TCoolBand对象,将组件添加到TCoolBand对象中
    在CoolBar工具栏中,通常包括很多子工具栏,每个子工具栏只能容纳一个组件,各个子工具栏可以在CoolBar工具栏的范围内调整位置和顺序,这些子工具栏就是TCoolBand对象。如果要添加TCoolBand对象,执行如下操作:
    (1)单击CoolBar组件的Bands属性右侧的省略号按钮,打开[Editing CoolBar1.Bands]窗口,如图7-7所示。图7-7  [Editing CoolBar1.Bands]窗口
    (2)单击[Add New]按钮,可添加一个TCoolBand对象。
    (3)单击TCoolBand对象的Control属性右侧的下拉按钮,可从中选择一个组件,例如选择ToolBar1。然后利用Text属性添加一个标题,例如添加“工具栏”。
    (4)继续单击[Add New]按钮,可继续添加TCoolBand对象。这里,我们只添加两个TCoolBand对象。
    (5)继续给TCoolBand对象添加组件。TCoolBand对象使用的典型组件是ToolBand,但也可以使用编辑框、组合框等组件。例如,我们添加第二个TCoolBand对象,将其Control属性选择为ComboBox1,将其Text属性设置为“字号”。
    (6)添加TCoolBand对象完毕后,[Editing CoolBar1.Bands]窗口关闭。
    用户可以每行放置一个TCoolBand对象,也可以将几个TCoolBand对象放置在同一行上,每个对象使用一部分。例如,我们在CoolBand中使用了两个TCoolBand对象,共占两行,每行放置一个对象。
    至于TCoolBand对象所对应的组件,仍可单独进行编程,对此我们不再进行重复。如图7-8,显示了上述操作的运行效果。图7-8  使用CoolBar工具栏      图7-9  调整TCoolBand对象位置和大小
    在程序运行时,将鼠标指向TCoolBand对象左侧的竖形条,按住并拖动鼠标可调整对象位置。另外,单击TCoolBand对象的标题可自动扩大它。如图7-9显示了经过调整后的TCoolBand。
    如果要使ToolBar组件在CoolBar组件中仍保持浮动特性,则应给CoolBar组件添加OnDockOver事件,并编写如下代码:
    procedure TForm1.CoolBar1DockOver(Sender: TObject; Source: TDragDockObject;
      X, Y: Integer; State: TDragState; var Accept: Boolean);
    var
      ARect:TRect;
    begin
      Accept:=(Source.Control is TToolBar);
      if Accept then
      begin
        ARect.TopLeft:=CoolBar1.ClientToScreen(CoolBar1.ClientRect.TopLeft);
        ARect.BottomRight:=CoolBar1.ClientToScreen(CoolBar1.ClientRect.BottomRight);
        Source.DockRect:=ARect;
      end;
    end;
    5.保存程序
    将单元文件另存为“Unit7_3.pas”,将项目文件另存为“Project7_3.dpr”。
      

  3.   

    先谢谢sm2002(石门)兄:
    但还是没有回答我的问题,如何在工具条按钮显示不下的时候,在工具条的最右侧自动出现“>>”符号,点击它,就会弹出对应按钮功能的下拉菜单?
      

  4.   

    Delphi自带的VCL应该可以
    但是是一个很复杂的算法,必须自己编写代码进行判断