CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

TMainMenu太恶心了

楼主dong163(再见理想)2002-02-28 00:18:21 在 Delphi / VCL组件开发及应用 提问

那个像Delphi、IE、Word中那种可以拖动的菜单是什么组件?我用TActionMainMenuBar试了试,很难用,并且我想要做成做Delphi那样含有Image的可以拖动菜单。因为TMainMenu太恶心了,放到窗体上怎么看都特别扭。 问题点数:20、回复次数:13Top

1 楼dong163(再见理想)回复于 2002-02-28 00:37:42 得分 0

upTop

2 楼dong163(再见理想)回复于 2002-02-28 00:38:27 得分 0

upTop

3 楼hamzsy(十二真空间)回复于 2002-02-28 00:54:18 得分 0

帮你UPTop

4 楼delphiplayer()回复于 2002-02-28 01:10:33 得分 0

用xpmenu吧Top

5 楼fontain()回复于 2002-02-28 02:00:12 得分 0

用coolbar+speedbuttonTop

6 楼fontain()回复于 2002-02-28 02:00:42 得分 0

再加popupmenuTop

7 楼laofeng(老封)回复于 2002-02-28 02:59:54 得分 5

使用CONTROLBAR和Toolbar即可!  
  可以看看我用DELPHI写的游戏!  
  http://laofeng.y365.com/Top

8 楼hamzsy(十二真空间)回复于 2002-02-28 03:02:29 得分 5

用Toolbar+Controlbar可以的Top

9 楼hfclql(三毛)回复于 2002-02-28 08:03:04 得分 0

CoolBar+TActionMainMenuBarTop

10 楼PoolD(池龙)回复于 2002-02-28 09:05:52 得分 0

TCoolBar   +   TToolBar   +   TMainMenu  
  或者  
  TControlBar   +   TToolBar   +   TMainMenu  
   
  1.   将form的MainMenu属性设置为空,这样MainMenu就不会显示在form上  
  2.   将ToolBar放在CoolBar或者ControlBar上  
  3.   将ToolBar的Flat属性设置为true  
  4.   在ToolBar上添加ToolButton,将按钮的Grouped属性设置为true  
  5.   利用ToolButton的MenuItem属性将按钮和菜单关联  
   
  Top

11 楼sm2002(石门)回复于 2002-02-28 10:28:21 得分 10

你所说的大概是工具栏制作,这里提供你用ToolBar制作工具栏的方式,  
  还可以用TControlBar   、TCoolBar制作工具栏的方法,更爽。  
  不过只允许我放这点字符,只能割爱了。  
  全部文字都选至本人的著书,绝无D版。  
  其中插图无法在这显示,请谅解。  
   
  7.2.2   使用工具栏组件  
  Delphi提供了新的工具栏(ToolBar)组件,位于组件板的[Win32]选项卡上,可用来直接创建工具栏。  
  用工具栏组件设计工具栏非常容易,下面我们仍利用上面的例程来进行说明,用工具栏组件进行设计。  
  1.打开应用程序  
  启动Delphi,从[File]菜单中选取[Reopen]命令或[Open   Project]命令,打开应用文件Project5_2。此时,应用程序将打开例程5-2窗体,修改Form1的Caption属性为“工具栏设计”。  
  2.往窗体中添加一个ToolBar组件——ToolBar1。  
  如果要求工具栏上按钮是平的,只有当鼠标停驻在按钮上才凸显,可将ToolBar1的Flat属性设置为True。  
  如果要求工具栏显示边界,可根据需要将EdgeBorders属性的四个子属性ebLeft(左边界)、ebTop(上边界)、ebRight(右边界)、ebBottom(底边界)设置为True。  
  3.工具栏上添加快捷按钮(不是快捷按钮组件)。  
  右击工具栏组件,打开一快捷菜单,如图7-3所示。如果要添加按钮,选择[New   Button]命令;如果要添加分隔条,选择[New   Separator]命令。  
   
  图7-3     工具栏组件快捷菜单  
  这里,我们往工具栏上添加了七个按钮和三条分隔条,见表7-5:  
        表7-5     工具栏上ToolButton的属性  
  按钮Name 作用 Hint Style Grouped  
  ToolButton1 [颜色] 颜色 tbsButton False  
  ToolButton2 分隔条  
  ToolButton3 [加粗] 加粗 tbsCheck False  
  ToolButton4 [倾斜] 倾斜 tbsCheck False  
  ToolButton5 [下划线] 下划线 tbsCheck False  
  ToolButton6 分隔条  
  ToolButton7 [左对齐] 左对齐 tbsCheck True  
  ToolButton8 [居中] 居中 tbsCheck True  
  ToolButton9 [右对齐] 右对齐 tbsCheck True  
  ToolButton10 分隔条  
  4.设置工具栏上按钮的属性。  
  工具栏上添加的按钮属于TToolButton类型,可用对象查看器来设置属性。  
  ①Style属性  
  TToolButton对象有一个基本属性——Style属性,该属性提供了以下属性值:  
  ·tbsButton:表示标准按钮。  
  ·tbsCheck:表示具有复选功能或单选功能的按钮。  
              如果该按钮不与其他按钮编组,则具有复选功能;  
              如果与其他按钮一起编组,则具有单选功能。  
  ·tbsDevider:表示一条竖线型分隔条。  
  ·tbsDropDown:表示凹陷式按钮,但需要使用其他组件进行支持。  
  ·tbsSeparator:表示空格型分隔条。  
  ②Grouped属性  
  要使一组按钮具有单选功能,通常要给工具栏上相邻按钮分组,将组中每个TToolButton按钮的Grouped属性设置为True,这些按钮必须是相邻的。按钮分组时,如果遇到一个按钮的Grouped属性不是True,或其Style属性不是tbsCheck,或添加了一个分隔条,则分组自动结束。  
  ③MenuItem属性  
  要使工具栏上按钮与相应的菜单命令对应,请在MenuItem属性中选择相应的菜单命令名称(Name属性)。但是设置MenuItem属性后,按钮将不再保留位图。  
  ④Hint属性  
  各工具栏上按钮的功能提示。要在程序运行时能显示按钮的功能提示,还得将窗体Form1的ShowHint属性和工具栏ToolBar1的ShowHint属性设置为True。  
  这里,我们将ToolButton2—ToolButton7的Style属性设置为tbsCheck。将ToolButton5—ToolButton7的Grouped属性设置为True。同时,添加相应的功能提示文本。  
  5.为按钮提供位图。  
  右击窗体中的ImageList1组件,将打开一个快捷菜单,从中选择[ImageList   Editor]命令,打开图像列表编辑器窗口,如图7-4所示。单击[Add]按钮,可增加一幅位图。将工具栏上按钮用到的位图按顺序加载到[Images]列表中,然后单击[OK]按钮返回。  
   
  图7-4     图像列表编辑器  
  提示:如果要加载的位图不是16x16大小,请先设置ImageList1组件的Height属性和Width属性。  
  再将ToolBar1组件的Images属性设置为ImageList1组件的Name属性——ImageList1。  
  提示:如果ImageList加载位图的顺序与工具栏上的按钮顺序不一致,请将每一个TToolButton对象的ImageIndex属性设置位图加载的序号。  
  如果工具栏上按钮在灰显时要用另外的位图图像表示,请再增加一个ImageList组件,加载按钮要用到的位图后,再将ToolBar1组件的DisabledImages属性设置该ImageList组件。  
  如果工具栏上按钮在鼠标停驻时要用另外的位图图像表示,请再增加一个ImageList组件,加载按钮要用到的位图后,再将ToolBarl组件的HotImages属性设置该ImageList组件。  
  6.往工具栏中添加其他组件。  
  工具栏组件是—个容器型组件,也可以添加其他组件。这里往工具栏中添加一个组合框ComboBox1,用于设置字号。其Items为10、12、15、18、21、24共6项,Text属性为10,Width属性为50。  
  7.链接工具栏按钮和菜单命令的OnClick事件。  
  同上一节一样,可以将工具栏上各按钮的OnClick事件与相应的菜单命令的OnClick事件链接起来,以便按钮与相应菜单命令具有相同的功能。  
  工具栏各按钮的OnClick事件选定的响应过程为:[颜色]按钮ToolButton1—Button1Click、[左对齐]按钮ToolButton7——OptionAlignLeftClick、ToolButton8—OptionAlignCenterClick、ToolButton9——OptionAlignRightClick。  
  8.编写事件响应代码  
  同上一节一样,我们所添加的[加粗]、[倾斜]、[下划线]按钮和[字号]组合框,没有原菜单命令项,所以必须独立编写事件。  
  [加粗]按钮事件代码:  
  procedure   TForm1.ToolButton3Click(Sender:   TObject);  
  begin  
          if   ToolButton3.Down   then  
                Memo1.Font.Style:=Memo1.Font.Style+[fsBold]  
                else  
                Memo1.Font.Style:=Memo1.Font.Style-[fsBold];  
  end;  
  [倾斜]按钮事件代码:  
  procedure   TForm1.   ToolButton4Click(Sender:   TObject);  
  begin  
          if   ToolButton4.Down   then  
                Memo1.Font.Style:=Memo1.Font.Style+[fsItalic]  
                else  
                Memo1.Font.Style:=Memo1.Font.Style-[fsItalic];  
  end;    
  [下划线]按钮事件代码:  
  procedure   TForm1.ToolButton5Click(Sender:   TObject);  
  begin  
          if   ToolButton5.Down   then  
                Memo1.Font.Style:=Memo1.Font.Style+[fsUnderline]  
                else  
                Memo1.Font.Style:=Memo1.Font.Style-[fsUnderline];  
  end;  
  ComboBoxl组件的OnChange事件响应过程为ComboBox1Change,其代码与上一节相同。  
  9.保存程序  
  将单元文件另存为“Unit7_2.pas”,将项目文件另存为“Project7_2.dpr”。  
  10.编译运行程序  
  单击工具栏上[Run]按钮即可运行程序。运行后,单击工具栏上[颜色]按钮,可设置文本的背景颜色;单击[加粗]、[倾斜]、[下划线]按钮,可将文本相应地加粗、倾斜和加下划线,由于这一组按钮为复选按钮,因此可综合使用;而单击[左对齐]、[右对齐]、[居中]按钮,则可调整文本的对齐方式,这一组按钮为单选按钮,一次只有一个按钮有效。  
  另外,将鼠标指向工具栏上的快捷按钮,稍停,将会出现该按钮的功能提示。  
  这样,例程中的工具栏就改造完毕,编译程序后,将与前面例程的运行效果完全相同。不过,显然工具栏的外观效果要美观得多。图7-5给出了例程的设计效果。  
   
  图7-5   用工具栏组件设计工具栏                     图7-6     浮动式工具栏  
  如果要将工具栏设置为浮动式,可将其DockSite属性设置为False,DragKind属性设置为dkDock,DragMode属性设置为dmAutomatic,窗体Form1的DockSite属性设置为True。再给工具栏的OnEnd事件添加响应过程ToolBar1EndDock,其代码如下:  
  procedure   TForm1.ToolBar1EndDock(Sender,   Target:   TObject;   X,   Y:   Integer);  
  begin  
        ToolBar1.Left:=0;  
        ToolBar1.Top:=0;  
  end;  
  编译程序后,可用鼠标拖动工具栏形成浮动式效果,如图7-6所示。其中浮动窗口名“工具栏”是ToolBarl组件的Caption属性值。  
  Top

12 楼zzz2(瞌睡虫)回复于 2002-02-28 11:07:32 得分 0

TMainMenu太恶心了?不至于吧!  
  “下拉菜单”是上世纪计算机界面的最大发明之一。Top

13 楼stiwin((忙碌))回复于 2002-02-28 11:55:47 得分 0

coolbar可以拖动;  
  在www.dephibox.com只有FlatMenu  
  memuxp.zip下载Top

14 楼lazygod(Use any item)回复于 2002-02-28 13:19:29 得分 0

问题是ControlBar+ToolBar+MainMenu的组合中:  
  MainMenu的快捷键都不能用了!Top

相关问题

  • 有些网站太恶心了?
  • 工作太累了,头晕恶心!有什么好办法?
  • 上海的女人真是太烂了,无比的恶心
  • 情颠大圣太恶心了,吐了一夜……
  • 【 “妈妈 我恶心” 】
  • 【 “妈妈 我恶心 ” 】
  • 赵..真是恶心!!!
  • 我好心共享资源,不知道那个无耻的家伙在下载完删掉了,太恶心了
  • 我真的觉得周杰伦简直太恶心了,你们说呢??个人看法
  • 麻烦兄弟姐妹推荐几个插件,Myeclipse和lomboz太恶心,编辑JSP中文有乱码

关键词

  • 属性
  • 组件
  • toolbar
  • 下划线
  • 工具栏
  • 按钮
  • toolbutton
  • 设置
  • 添加
  • tmainmenu

得分解答快速导航

  • 帖主:dong163
  • laofeng
  • hamzsy
  • sm2002

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo