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