delphi下实现ribbon界面的方法(一)
delphi下實現ribbon界面的方法(一)
office 2007和2010是現在大多數人經常使用的辦公軟件,幾乎每天都在使用。因此,在軟件中如果使用類office的界面樣式,客戶用著非常習慣,而且學習曲線低,office界面特有的可以收起工具欄的性質,也增大了用戶的界面內容,因此,非常受廣大用戶的喜歡。
????? 那么我們能不能也作出這么好的界面呢?答案當然是肯定的。這種界面的樣式叫ribbon,中文名稱叫絲帶。在VS2010中,VC++和wcf都給ribbon的開發提供了非常好的支持,vc++下更是提供了一個完整的向導,可以作出非常漂亮的界面。但是由于。net下開發的應用程序,因為發布時需要,net框架,因此發布時應用程序非常龐大,而且win XP下沒有sp3的支持,還安裝不上,對客戶的機器環境要求比較高,所以推廣面臨困難。???
????? 在winform開發一直非常優秀的delphi,能否實現呢?答案當然也是肯定的,而且開發方法非常多。delphi開發的ribbon程序,不需要任何附帶的環境支持,軟件發布時,只把exe文件拷貝過去就可以使用,而且delphi優秀的編譯器編譯出來的應用程序運行速度快、占用內存小。
????? 那么delphi下有幾種開發ribbon的方式呢?我最近查閱了一些國內外的資料,主要有三種方式,這三種方式各有所長,但是都能做出非常漂亮的ribbon程序。
????? 今天,我就跟大家分享第一種ribbon開發方式,利用delphi2010自帶的tribbon控件的開發ribbon。這種方式開發出來的程序沒有office那么絢麗,但是這種方式不利用第三方組件,是免費的,因此,如果項目運行比較緊張,利用這種方式也是非常不錯的選擇,并且界面經過美化后,也沒有想象的那么難看。
????? 下面言歸正傳,我們開始開發過程。首先,建立一個vcl application。在tool palette選擇TRibbon控件,如下圖:
放在form上,如下圖:
?
? ?Tribbon組件是一個容器,可以把應用程序的所有操作都集成到這個Tribbon控件中,并且所有的設計都是可視的非常直觀,在開發時,還可以參考office的樣式,當然,最好是有自己的風格。容器中可以建立應用程序菜單(Application menu)、快速訪問工具欄(Quick Access ToolBar)、多個tab,每個tab下,可以建立多個組(group),每個組里面可以放多個相關聯的控件。
??? 一般情況在,與文件或者系統相關的操作都會放在應用程序菜單下,例如軟件的備份恢復,換名登錄,打印等等。鼠標右鍵tribbon,可以添加application menu,ribbon左上角會增加一個圓形圖標 。(在添加application時,必須先指定tribbon組件的action manager屬性,也就是在窗體中增加action manager控件,這是一個神奇的控件,整個軟件的調動都是通過action manager來控制的)
??? 經常使用的功能可以放在快速訪問工具欄中,無論程序切換到那個tab,都可以通過鼠標直接點擊進行操作。例如保存、撤銷等等。鼠標右鍵Tribbon,可以天劍Quick Access ToolBar。
??? tab的數量要根據自己的需要,鼠標右鍵Tribbon就可以添加 。然后再在tab中建立功能組(group)。
??? 例如我下面的例子,因為我要做一個文本編輯器,所以我要建立主頁和樣式兩個tab,建立一個application menu,一個Quick Access ToolBar。主頁中建立剪貼板(clipboard),段落(paragraph),字體(font),編輯(edit)、查找(find)五個group,樣式中建立一個ribbon style group,delphi2010默認提供了三種ribbon的樣式,分別是藍色,黑色和銀色。
??? Tribbon組件還有一個重要的屬性,就是showhelp,如果設置為true,則會在ribbon的右上角顯示幫助圖標,可以把幫助連接到這個圖標上。
??? 增加了這內容后,form的樣式是這樣的:
?
?
?
?
?
?
?
?
?
?
?
下面,我們添加一個richedit控件(最好是WPTools組件的TWPRichtext控件,功能會更強大,因為版權的關系,我的演示程序就用richedit控件了)。為了美觀和更貼近于word,最好是把richedit控件放在gridpanel下。運行程序,現在就可以輸入文字了,但是,程序還是什么都干不了。
???? 非常可貴的是,action manager可以給ribbon增色,actionmanager中可以增加新的action,還可以選擇系統提供的標準的action。大家可以只要在界面上操作一次就會了。
我們把新加的各種action直接拖放就可以放在各個分組或者application menu上面,非常方便。經過拖放后,我的界面如下:
?
?
?現在運行程序,一個簡單的word就實現了,但是,ribbon的樣式,還不能實現,需要編寫代碼(注意,到現在我們還沒有編寫一行代碼!)。我們在action manager中自定義幾個action,caption分別為:黑色、藍色和銀色,對action編程,代碼如下:
procedure TForm11.Action1Execute(Sender: TObject);
begin
? Ribbon1.Style:=RibbonLunaStyle;
end;
procedure TForm11.Action2Execute(Sender: TObject);
begin
Ribbon1.Style := RibbonObsidianStyle;
end;
procedure TForm11.Action3Execute(Sender: TObject);
begin
? Ribbon1.Style := RibbonSilverStyle;
end;
就實現了切換不同的ribbon風格
?
? 但是這個軟件還不行,你們發現缺少什么了嗎?對,還缺少圖標,沒有圖標指示,有時客戶不知道你的功能是干什么的,尤其我的語文這么爛!O(∩_∩)O哈哈~。那么,我們就在form里面加一個imagelist,把office的圖標拿下來,現在有很多軟件可以做到這一點。但是,光有圖標還是不行的,如果鼠標在每個圖標上面的時候,都有一個非常清楚的操作提示,那么,我們的軟件甚至可以沒有幫助,用戶一樣可以很清楚的知道軟件是怎么使用的,那該多好呀!delphi的ribbon組件下面專門有一個組件,就是做這個的,他的名字叫ScreenTipsManager,他的主要功能就是給各個功能按鈕提供提示!設置tribbon控件的screentips屬性為新添加的ScreenTipsManager,每個按鈕就會顯示相應的提示!默認的提示就是每個按鈕的hint,我們可以修改hint,也可以在ScreenTipsManager控件中編輯,還可以顯示提示窗口的圖標、頁眉、頁腳。但是一定要設置form的showhint屬性之后才能顯示。
???? 全部編輯完以后,界面如下:
?
是不是感覺很漂亮?其實做這樣一個程序也就是1個小時的時間,文件大小在2M多,如果是release版并且壓縮的話,1M多一點,隨便拷貝到任何計算機都能用,不需要亂七八糟的框架支持。
??? 這個程序還可以做的更好,例如加入字體字號、文字變形等,也就是word能實現的功能基本都可以實現,只是richedit控件不是很給力。要是WPTools控件就好了。
??? 下一章將利用devexpress實現ribbon,比delphi2010自帶的功能要強大,但是devexpress是需要付費的,有購買過的大俠可以參考。
轉載于:https://www.cnblogs.com/m0488/archive/2013/05/02/3054910.html
總結
以上是生活随笔為你收集整理的delphi下实现ribbon界面的方法(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 生成 顺序 uuid_Java
- 下一篇: l360废墨收集垫更换视频_爱普生l35