1. 程式人生 > >【轉】實現Ribbon風格的窗體

【轉】實現Ribbon風格的窗體

必備 use 文字 圖片 小技巧 都是 版本 ces 修改

隨著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即可

技術分享圖片

【轉】實現Ribbon風格的窗體