国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

C++ Builder中采用DevExpressVCL控件開發(fā)淺析

2014-07-28 00:37蔣祝平
電腦知識與技術 2014年16期

蔣祝平

摘要:闡述DevExpress VCL控件在C++ Builder下的安裝、編譯及使用。通過采用該控件中強大的Grid組件,實現數據庫開發(fā)中復雜表單的設計,采用Ribbon組件,實現最新的Office Ribbon界面,增強開發(fā)軟件的用戶操作性。

關鍵詞:C++ Builder;DevExpress;Ribbon;Grid

中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2014)16-3782-07

在Windows平臺Win32軟件開發(fā)領域,由于Microsoft的大力推廣及不斷更新,Visual Studio系列可以說是目前最為流行的開發(fā)平臺。當然,任何領域都不可能只有一家獨大,在軟件開發(fā)工具的進化歷史長河中,有家公司一直與Microsoft競爭,那就是Borland軟件公司。但隨著Microsoft在Visual Studio系列上的逐漸發(fā)力,Borland的競爭逐漸處于下風,最終將開發(fā)工具業(yè)務出售給現在的Embarcadero,Embarcadero將Delphi和C++ Builder等開發(fā)工具放在一起稱為RAD Studio。近幾年,雖然Embarcadero不斷推陳出新,幾乎每年升級RAD Studio,無奈市場占有率不斷下降,但這并不能否定目前最新版本的RAD Studio XE6是非常優(yōu)秀的開發(fā)工具。

筆者從Delphi 5.0時代開始,一直使用C++ Builder 作為主要開發(fā)工具,現在使用的版本是C++ Builder 2010。RAD Studio從2009版本開始,幾乎每年一升級,經歷了2010、XE、XE2、XE3、XE4,直到目前最新的XE6,最新版本支持原生Android移動平臺開發(fā),有很大發(fā)展前景。由于目前我的工作基本上只用到Windows平臺,所以一直使用的是2010版本。

在Delphi和C++ Builder開發(fā)領域,有一款重量級的開發(fā)控件,那就是DevExpress公司開發(fā)的用于Delphi與C++ Builder的DevExpress VCL Controls。這套控件功能十分強大,涵蓋了界面設計、數據表單等方方面面。由于功能的強大,也造成這套控件的使用也非常復雜,該文就從這套控件在C++ Builder中的安裝開始,對它在開發(fā)使用過程中的一些技巧及問題做一闡述。

1 DevExpress VCL Controls的編譯與安裝

DevExpress VCL Controls的版本更新很快,每當RAD Studio新版本發(fā)布,DevExpress都會及時跟進,使自己的控件能夠兼容最新的Delphi和C++ Builder。目前官網上最新的版本是13.2,支持C++ Builder 2007至最新的C++ Builder XE6,而我們能夠從網上獲取到的最新版本為13.1.4。該控件的很多版本分為多種安裝格式,最完整的是第三方制作的帶源碼、實例及幫助的完整版安裝程序,只需要一步步安裝即可,非常方便;但另外一種是只有源代碼、實例,而沒有安裝程序。這種只有源代碼的包安裝起來很復雜,因為整個DevExpress VCL包含超過180個控件,將近30個package,需要在C++ Builder中將每個package的源代碼編譯安裝,且有一定的安裝順序。這個編譯安裝過程相當繁瑣,造成每次需要安裝DevExpress VCL的過程經常出現問題。

筆者依據近幾年開發(fā)的經驗,參考Delphi的dcc32編譯器的詳細使用幫助,采用命令行編譯的方式,將每個package用dcc32進行命令行編譯,代碼格式如下:

dcc32.exe "..\..\ExpressCore Library\Packages\dxCoreRS14.dpk" -JL -B -U"..\..\ExpressCore Library\Sources;..\..\Library\RS14" -R"..\..\ExpressCore Library\Sources" -N"." -LE"." -LN"." -NH"." -NO"."

這條編譯命令中所用到的參數說明:

-JL = 生成C++需要的 .lib,.bpi以及所有的.hpp文件

-B = 編譯所有單元文件

-U = 單元文件所在目錄

-R = 資源文件所在目錄(dcr等文件)

-LE = .bpl文件輸出目錄

-LN = .dcp文件輸出目錄

-NH = .hpp文件輸出目錄

-NO = .obj文件輸出目錄

其中所有的輸出文件指定的目錄都是“.”,表示該批處理文件運行時所在的目錄,方便最后C++ Builder進行開發(fā)時,搜索需要的各種文件。

這是單個dpk文件的編譯命令,將所有的dpk文件編譯命令生成一個批處理,就可以通過運行該批處理文件,一次性將所有的dpk文件編譯完成。在批處理中,由于各個dpk之間的相互依賴關系,有一定的先后順序,經過測試,確定了整個DevExpress VCL控件編譯的順序,保證所有控件都能正常編譯,生成的批處理文件如圖1所示:

將下載獲取的DevExpress VCL控件源碼包解壓,復制到自己想要存放的目錄,筆者參考自動安裝程序的目錄,存放到Program Files(x86)\DevExpress VCL,并且在該目錄下創(chuàng)建Library\RS14,用于RAD Studio 2010版本的編譯后的文件存放,這樣方便識別,如果想要編譯其他版本,就創(chuàng)建RS15等等其他目錄。將我自己創(chuàng)建的批處理文件manuinstallRS14.bat復制到RS14,以管理員身份運行command命令,執(zhí)行該批處理,稍等片刻,所有的控件就編譯好了,文件都生成在RS14目錄。

運行C++ Builder 2010,進入Install Packages,添加編譯生成的所有以dcl開頭的bpl控件,這是設計時控件,這樣DevExpress VCL就全部安裝完成,可以在C++ Builder中看到這些控件。后面還要在Options中設置軟件開發(fā)中使用這些控件的編譯路徑,這個一般程序員都應該清楚,就不多說了。

2 DevExpress VCL中Ribbon控件的使用

DevExpress VCL這套控件包中有超過180個控件,幾乎涵蓋了軟件開發(fā)過程中界面設計的方方面面,可以說,有了這套控件,基本上可以不需要安裝其他第三方控件。其中的Ribbon控件就是用于開發(fā)Ribbon界面的有力工具,Microsoft自從2007年發(fā)布Office2007后,其標志性的Office Ribbon界面目前已成為流行軟件開發(fā)的標準UI,現在許多軟件的操作界面都采用Ribbon,包括現在最新的Win8/Win8.1系統(tǒng),很多地方都已經集成Ribbon操作。RAD Studio從2009版本開始也自帶了Ribbon控件,但是自帶的這個控件使用起來很麻煩,而且功能不強,比起DevExpress VCL中的Ribbon控件有很大的差距。下面以筆者自己寫的幾個軟件為例,簡單介紹一下Ribbon控件的開發(fā)使用。

Ribbon控件位于ExpressBars分類中,名稱顯示為TdxRibbon,TdxRibbon要與TdxBarManager配合使用,先將一個TdxBarManager放置于Form上,然后放置TdxRibbon,TdxRibbon會自動與TdxBarManager關聯(lián),缺省情況下,Ribbon欄只有一個Tab,且是Office 2007 Ribbon的風格,一般與Ribbon相配合的還有一個TdxRibbonStatusBar,也放在Form上即可。很簡單的三步,一個Ribbon界面的Form即設計好了。在缺省的Tab上面點擊右鍵,就會彈出右鍵菜單,可以增加或者刪除Tab,可以增加Group。每個Tab就是Ribbon欄上一個選項卡,每個選項卡下面可以增加多個Group,在Group中創(chuàng)建各種工具按鈕。如下圖所示,就是一個簡單的Ribbon空界面。在Ribbon控件的屬性設置中,有個Style屬性,可以設置Office 2007、2010、2013這三種風格。2007與2010的設置還不一樣,我們選擇2010即可。在現在這個階段,Ribbon界面左邊的那個File菜單還沒有出現,對于2010的風格,我們需要放置TdxRibbonBackstageView控件,將TdxRibbon屬性中ApplicationButton下Menu關聯(lián)至TdxRibbonBackstageView,Text屬性中輸入菜單顯示的文字,比如File,同時,在TdxBarManager中創(chuàng)建一個ToolBar,將TdxRibbon的QuickAccessToolbar屬性下的Toobar屬性關聯(lián)至這個新創(chuàng)建的Toolbar,這樣,Ribbon的菜單就出來了。運行一下這個程序,就可以看到如圖2的界面了。

這時候,你會發(fā)現一個小小的問題,那就是Windows系統(tǒng)自己的標題欄還是存在的,而真正的Ribbon界面程序,是沒有這個標題欄的。這個問題筆者是參考Devexpress提供的demo解決的,首先將TdxRibbon的SurpportNonClientDrawing屬性設為true,然后修改該Form創(chuàng)建的基類。即將BCB缺省創(chuàng)建的基類class TForm1 : public TForm,修改為class TForm1 : public TdxCustomRibbonForm,重新編譯運行,是不是成功了?

由于Ribbon欄上面眾多的Group,每個Group中又有眾多的按鈕,所以,需要我們在TdxBarManaager控件中詳細分類設置好每個Tab,每個Group中對應的按鈕,這是個細活,不能著急。以上就是TdxRibbon控件的關鍵幾個問題,注意這幾個問題,整個Ribbon界面就搭建好了,其他的Tab欄上面各種按鈕控件一個個試用一下即可掌握使用方法。

3 DevExpress VCL中TcxGrid控件的使用

用到DevExpress VCL的控件,我們就不得不提到其中的TcxGrid控件,筆者最初就是從使用這個強大的Grid表格控件開始的。

3.1 TcxGrid基礎應用

使用TcxGrid控件創(chuàng)建一個表格應用很簡單,首先設置好連接數據庫的各種控件,根據連接方式的不同,有不同的設置方法,比如,筆者使用的是ADO連接SQL Server,這也是數據庫開發(fā)常用的一種方式,設置好TADOQuery和TDataSource控件,將TcxGrid放置在Form上,TcxGrid控件中有兩個概念需要理清:Level和View。Level相當于TcxGrid自帶的PageControl控件,每個Level下鏈接一個View,這個View就是具體的表格。圖3就是基礎的TcxGrid形態(tài)。

3.2 TcxGrid分組統(tǒng)計功能

TcxGrid自帶很多強大的功能,比如匯總、分組查詢,可以得到強大的統(tǒng)計功能。圖4顯示的是以“發(fā)貨日期”為一級分組,“市縣”為二級分組,這樣就能顯示某一天中,某個縣詳細的學校清單,縣一級有合計,當天那一級也有合計,非常清楚明晰。

4 結束語

采用Devexpress的控件解決方案,極大地提高了軟件開發(fā)的效率,降低系統(tǒng)維護的復雜性,也同時降低了投資成本和后期管理成本,具有很高的實用性。該文主要針對支持Delphi與C++ Builder的VCL控件進行介紹,Devexpress的控件,尤其是TcxGrid還有深入的開發(fā)方法,需要更深層次的使用與挖掘。

參考文獻:

[1] 陳寬達. C++ Builder深度歷險[M]. 上海:華中科技大學出版社,2002.

[2] Satya Sai Kolachina.C++Builder6 Developers Guide[M]. Wordware Publishing, Inc,2003.endprint

運行C++ Builder 2010,進入Install Packages,添加編譯生成的所有以dcl開頭的bpl控件,這是設計時控件,這樣DevExpress VCL就全部安裝完成,可以在C++ Builder中看到這些控件。后面還要在Options中設置軟件開發(fā)中使用這些控件的編譯路徑,這個一般程序員都應該清楚,就不多說了。

2 DevExpress VCL中Ribbon控件的使用

DevExpress VCL這套控件包中有超過180個控件,幾乎涵蓋了軟件開發(fā)過程中界面設計的方方面面,可以說,有了這套控件,基本上可以不需要安裝其他第三方控件。其中的Ribbon控件就是用于開發(fā)Ribbon界面的有力工具,Microsoft自從2007年發(fā)布Office2007后,其標志性的Office Ribbon界面目前已成為流行軟件開發(fā)的標準UI,現在許多軟件的操作界面都采用Ribbon,包括現在最新的Win8/Win8.1系統(tǒng),很多地方都已經集成Ribbon操作。RAD Studio從2009版本開始也自帶了Ribbon控件,但是自帶的這個控件使用起來很麻煩,而且功能不強,比起DevExpress VCL中的Ribbon控件有很大的差距。下面以筆者自己寫的幾個軟件為例,簡單介紹一下Ribbon控件的開發(fā)使用。

Ribbon控件位于ExpressBars分類中,名稱顯示為TdxRibbon,TdxRibbon要與TdxBarManager配合使用,先將一個TdxBarManager放置于Form上,然后放置TdxRibbon,TdxRibbon會自動與TdxBarManager關聯(lián),缺省情況下,Ribbon欄只有一個Tab,且是Office 2007 Ribbon的風格,一般與Ribbon相配合的還有一個TdxRibbonStatusBar,也放在Form上即可。很簡單的三步,一個Ribbon界面的Form即設計好了。在缺省的Tab上面點擊右鍵,就會彈出右鍵菜單,可以增加或者刪除Tab,可以增加Group。每個Tab就是Ribbon欄上一個選項卡,每個選項卡下面可以增加多個Group,在Group中創(chuàng)建各種工具按鈕。如下圖所示,就是一個簡單的Ribbon空界面。在Ribbon控件的屬性設置中,有個Style屬性,可以設置Office 2007、2010、2013這三種風格。2007與2010的設置還不一樣,我們選擇2010即可。在現在這個階段,Ribbon界面左邊的那個File菜單還沒有出現,對于2010的風格,我們需要放置TdxRibbonBackstageView控件,將TdxRibbon屬性中ApplicationButton下Menu關聯(lián)至TdxRibbonBackstageView,Text屬性中輸入菜單顯示的文字,比如File,同時,在TdxBarManager中創(chuàng)建一個ToolBar,將TdxRibbon的QuickAccessToolbar屬性下的Toobar屬性關聯(lián)至這個新創(chuàng)建的Toolbar,這樣,Ribbon的菜單就出來了。運行一下這個程序,就可以看到如圖2的界面了。

這時候,你會發(fā)現一個小小的問題,那就是Windows系統(tǒng)自己的標題欄還是存在的,而真正的Ribbon界面程序,是沒有這個標題欄的。這個問題筆者是參考Devexpress提供的demo解決的,首先將TdxRibbon的SurpportNonClientDrawing屬性設為true,然后修改該Form創(chuàng)建的基類。即將BCB缺省創(chuàng)建的基類class TForm1 : public TForm,修改為class TForm1 : public TdxCustomRibbonForm,重新編譯運行,是不是成功了?

由于Ribbon欄上面眾多的Group,每個Group中又有眾多的按鈕,所以,需要我們在TdxBarManaager控件中詳細分類設置好每個Tab,每個Group中對應的按鈕,這是個細活,不能著急。以上就是TdxRibbon控件的關鍵幾個問題,注意這幾個問題,整個Ribbon界面就搭建好了,其他的Tab欄上面各種按鈕控件一個個試用一下即可掌握使用方法。

3 DevExpress VCL中TcxGrid控件的使用

用到DevExpress VCL的控件,我們就不得不提到其中的TcxGrid控件,筆者最初就是從使用這個強大的Grid表格控件開始的。

3.1 TcxGrid基礎應用

使用TcxGrid控件創(chuàng)建一個表格應用很簡單,首先設置好連接數據庫的各種控件,根據連接方式的不同,有不同的設置方法,比如,筆者使用的是ADO連接SQL Server,這也是數據庫開發(fā)常用的一種方式,設置好TADOQuery和TDataSource控件,將TcxGrid放置在Form上,TcxGrid控件中有兩個概念需要理清:Level和View。Level相當于TcxGrid自帶的PageControl控件,每個Level下鏈接一個View,這個View就是具體的表格。圖3就是基礎的TcxGrid形態(tài)。

3.2 TcxGrid分組統(tǒng)計功能

TcxGrid自帶很多強大的功能,比如匯總、分組查詢,可以得到強大的統(tǒng)計功能。圖4顯示的是以“發(fā)貨日期”為一級分組,“市縣”為二級分組,這樣就能顯示某一天中,某個縣詳細的學校清單,縣一級有合計,當天那一級也有合計,非常清楚明晰。

4 結束語

采用Devexpress的控件解決方案,極大地提高了軟件開發(fā)的效率,降低系統(tǒng)維護的復雜性,也同時降低了投資成本和后期管理成本,具有很高的實用性。該文主要針對支持Delphi與C++ Builder的VCL控件進行介紹,Devexpress的控件,尤其是TcxGrid還有深入的開發(fā)方法,需要更深層次的使用與挖掘。

參考文獻:

[1] 陳寬達. C++ Builder深度歷險[M]. 上海:華中科技大學出版社,2002.

[2] Satya Sai Kolachina.C++Builder6 Developers Guide[M]. Wordware Publishing, Inc,2003.endprint

運行C++ Builder 2010,進入Install Packages,添加編譯生成的所有以dcl開頭的bpl控件,這是設計時控件,這樣DevExpress VCL就全部安裝完成,可以在C++ Builder中看到這些控件。后面還要在Options中設置軟件開發(fā)中使用這些控件的編譯路徑,這個一般程序員都應該清楚,就不多說了。

2 DevExpress VCL中Ribbon控件的使用

DevExpress VCL這套控件包中有超過180個控件,幾乎涵蓋了軟件開發(fā)過程中界面設計的方方面面,可以說,有了這套控件,基本上可以不需要安裝其他第三方控件。其中的Ribbon控件就是用于開發(fā)Ribbon界面的有力工具,Microsoft自從2007年發(fā)布Office2007后,其標志性的Office Ribbon界面目前已成為流行軟件開發(fā)的標準UI,現在許多軟件的操作界面都采用Ribbon,包括現在最新的Win8/Win8.1系統(tǒng),很多地方都已經集成Ribbon操作。RAD Studio從2009版本開始也自帶了Ribbon控件,但是自帶的這個控件使用起來很麻煩,而且功能不強,比起DevExpress VCL中的Ribbon控件有很大的差距。下面以筆者自己寫的幾個軟件為例,簡單介紹一下Ribbon控件的開發(fā)使用。

Ribbon控件位于ExpressBars分類中,名稱顯示為TdxRibbon,TdxRibbon要與TdxBarManager配合使用,先將一個TdxBarManager放置于Form上,然后放置TdxRibbon,TdxRibbon會自動與TdxBarManager關聯(lián),缺省情況下,Ribbon欄只有一個Tab,且是Office 2007 Ribbon的風格,一般與Ribbon相配合的還有一個TdxRibbonStatusBar,也放在Form上即可。很簡單的三步,一個Ribbon界面的Form即設計好了。在缺省的Tab上面點擊右鍵,就會彈出右鍵菜單,可以增加或者刪除Tab,可以增加Group。每個Tab就是Ribbon欄上一個選項卡,每個選項卡下面可以增加多個Group,在Group中創(chuàng)建各種工具按鈕。如下圖所示,就是一個簡單的Ribbon空界面。在Ribbon控件的屬性設置中,有個Style屬性,可以設置Office 2007、2010、2013這三種風格。2007與2010的設置還不一樣,我們選擇2010即可。在現在這個階段,Ribbon界面左邊的那個File菜單還沒有出現,對于2010的風格,我們需要放置TdxRibbonBackstageView控件,將TdxRibbon屬性中ApplicationButton下Menu關聯(lián)至TdxRibbonBackstageView,Text屬性中輸入菜單顯示的文字,比如File,同時,在TdxBarManager中創(chuàng)建一個ToolBar,將TdxRibbon的QuickAccessToolbar屬性下的Toobar屬性關聯(lián)至這個新創(chuàng)建的Toolbar,這樣,Ribbon的菜單就出來了。運行一下這個程序,就可以看到如圖2的界面了。

這時候,你會發(fā)現一個小小的問題,那就是Windows系統(tǒng)自己的標題欄還是存在的,而真正的Ribbon界面程序,是沒有這個標題欄的。這個問題筆者是參考Devexpress提供的demo解決的,首先將TdxRibbon的SurpportNonClientDrawing屬性設為true,然后修改該Form創(chuàng)建的基類。即將BCB缺省創(chuàng)建的基類class TForm1 : public TForm,修改為class TForm1 : public TdxCustomRibbonForm,重新編譯運行,是不是成功了?

由于Ribbon欄上面眾多的Group,每個Group中又有眾多的按鈕,所以,需要我們在TdxBarManaager控件中詳細分類設置好每個Tab,每個Group中對應的按鈕,這是個細活,不能著急。以上就是TdxRibbon控件的關鍵幾個問題,注意這幾個問題,整個Ribbon界面就搭建好了,其他的Tab欄上面各種按鈕控件一個個試用一下即可掌握使用方法。

3 DevExpress VCL中TcxGrid控件的使用

用到DevExpress VCL的控件,我們就不得不提到其中的TcxGrid控件,筆者最初就是從使用這個強大的Grid表格控件開始的。

3.1 TcxGrid基礎應用

使用TcxGrid控件創(chuàng)建一個表格應用很簡單,首先設置好連接數據庫的各種控件,根據連接方式的不同,有不同的設置方法,比如,筆者使用的是ADO連接SQL Server,這也是數據庫開發(fā)常用的一種方式,設置好TADOQuery和TDataSource控件,將TcxGrid放置在Form上,TcxGrid控件中有兩個概念需要理清:Level和View。Level相當于TcxGrid自帶的PageControl控件,每個Level下鏈接一個View,這個View就是具體的表格。圖3就是基礎的TcxGrid形態(tài)。

3.2 TcxGrid分組統(tǒng)計功能

TcxGrid自帶很多強大的功能,比如匯總、分組查詢,可以得到強大的統(tǒng)計功能。圖4顯示的是以“發(fā)貨日期”為一級分組,“市縣”為二級分組,這樣就能顯示某一天中,某個縣詳細的學校清單,縣一級有合計,當天那一級也有合計,非常清楚明晰。

4 結束語

采用Devexpress的控件解決方案,極大地提高了軟件開發(fā)的效率,降低系統(tǒng)維護的復雜性,也同時降低了投資成本和后期管理成本,具有很高的實用性。該文主要針對支持Delphi與C++ Builder的VCL控件進行介紹,Devexpress的控件,尤其是TcxGrid還有深入的開發(fā)方法,需要更深層次的使用與挖掘。

參考文獻:

[1] 陳寬達. C++ Builder深度歷險[M]. 上海:華中科技大學出版社,2002.

[2] Satya Sai Kolachina.C++Builder6 Developers Guide[M]. Wordware Publishing, Inc,2003.endprint

微山县| 绍兴市| 修武县| 苗栗市| 剑河县| 潜江市| 靖宇县| 陇西县| 淳安县| 英吉沙县| 荔波县| 拜泉县| 蓝山县| 苏尼特右旗| 乃东县| 大厂| 当涂县| 南川市| 思南县| 防城港市| 萨迦县| 德庆县| 泗水县| 灌南县| 容城县| 易门县| 洞口县| 休宁县| 昌黎县| 乐山市| 阿城市| 得荣县| 磴口县| 班戈县| 扶沟县| 临汾市| 乐安县| 额敏县| 苏州市| 许昌县| 永安市|