随着office2007的兴起,微软让我们看到了Ribbon风格的窗体,现在很多软件也都开始使用Ribbon风格。
那么我们如果要自己开发,应当怎么做呢?本文就是为大家解开这个疑团的。

首先,Delphi本身并没有Ribbon风格的窗口可以直接拿来使用,而市面上很多类似于Ribbon的风格都是用截图法做出来的,那样做很麻烦,而且对于图片的控制要求非常高。这样无疑是增加了软件的成本,这里介绍的方法是使用第三方控件,DevExpress Bar 6 来完成Ribbon风格的界面。

首先下载并安装DevExpress Bar 6,注意必须是6,以往的版本没有Ribbon风格,然后将它安装到Delphi2007中。接下来就能够开始进入正题了。

必要的控件介绍:

TdxRibbon和TdxRibbonStatusBar在界面上可以直接看到;

TdxBarManager用于创建ToolBar,TdxBarManager对应dxRibbon的BarManager属性,创建的ToolBar对应父控件的Group属性;

TdxBarApplicationMenu用于创建项目菜单,一个TdxRibbon只包含一个TdxBarApplicationMenu,对应TdxRibbon的ApplicationButton.Menu属性;

TdxBarScreenTipRepository用于创建按钮的提示信息,创建的提示信息对应按钮等控件的ScreenTip属性

1、拖拽必要控件,设置对应属性:

上述控件都是Ribbon必备的,将它们都拖到窗体上。拖上后的界面如图所示,可以看到,Ribbon的Tab已经显示出来了,但还不是我们要的效果。接下来,继续设置控件的属性。
设置dxRibbon的BarManager属性为DxBarManager控件,设置dxRibbonPopupMenu的Ribbon属性为dxRibbon控件。双击dxBarManager控件,然后新建一个ToolBar。

  

  2、添加ApplicationMenu

然后在Object Inspector中会多出一个ToolBar,名称为dxBarManager1Bar1。设置dxRibbon的QuickAccessToolBar.ToolBar属性为dxBarManager1Bar1,马上可以看到,ApplicationMenu已经显示出来了。

  3、为Application和Tab添加ToolBar

右键点击ApplicationMenu右边的小箭头,添加几个Button。然后再双击dxBarManager,添加ToolBar,在dxRibbon上点击右键,选择Tabs Editor,在弹出的窗口中选中Tab。双击Groups属性,添加一个Group,然后将新增的ToolBar关联到Group中。得到的程序界面如图所示

  现在运行一下程序,看看效果

  4、去掉标题栏

大致已经看得到效果了,不过和office2007还有一点不同,我们得把标题栏去掉,让标题栏的文字显示在Ribbon中。这个地方需要一个小技巧。按F12切换到代码视图,在uses下添加 dxRibbonForm的引用,把窗体的基类从TForm修改为TDxRibbonForm。把dxRibbon控件的SupportNonClientDrawing属性设为True。再次运行程序。

  5、为Application添加内容

现在看到的效果就是Ribbon了,但是ApplicationMenu点下去还是没有东西,我们要在ApplicationMenu下加一个菜单。设置dxRibbon的ApplicationButton.Menu属性为dxBarApplicationMenu,双击dxBarApplicationMenu控件的ItemLinks属性,在屏幕左上方会发现一个小窗口,这个窗体就是用来做ApplicationMenu的,向里面添加按钮和组即可。

再次运行程序,点击左上角的圆形图案,即可看到ApplicationMenu。

6、为按钮添加ScreenTip提示信息

双击TdxBarScreenTipRepository,创建一个新的ScreenTip(name=dxscrntpOPen),然后设置打开按钮的ScreenTip属性为dxscrntpOPen即可

 
分类: Delphi

最新文章

  1. Python for Informatics 第11章 正则表达式五(译)
  2. UNIX常用命令
  3. ncurses-devel
  4. jQuery根据文本设置select选中失效问题
  5. 关于玩QQ消息导入导出功能的感想!
  6. svn配置
  7. 分布式PostGIS系列【1】— 概述
  8. 【原创】FAT32系统硬盘的数据恢复实例,这篇文章也是从自己QQ空间的,转移过来的
  9. Revisit-after元标签是什么,SEO的作用是什么
  10. Linux 内核优化
  11. 百度地图 Android SDK - 个性化地图
  12. ubuntu文本界面乱码的中国解决方案
  13. 从源码解析TreeMap
  14. 【Android Developers Training】 2. 运行你的应用
  15. Tomcat优化内存以及连接数
  16. qt5程序打包含qml
  17. 微信小程序合法域名配置-不校验合法域名、web-view(业务域名)、TLS 版本以及 HTTPS 证书
  18. spring-boot(三) HowTo
  19. windows server 2003 安全加固(二)
  20. 更改centos源为aliyun

热门文章

  1. MVC Form验证 登陆和退出Cookies的设定和消除
  2. poj1142
  3. 阿里云url解析,发布web后去除url中的端口号
  4. #JS attr和prop的区别
  5. openfst常用命令
  6. 权限管理UI
  7. 搭建LDAP服务器
  8. Odoo访问权限(一)
  9. 数据包注入重放工具aireplay-ng
  10. Xamarin iOS教程之自定义视图