您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业文化 > 第2章 C++ Builder 基本程式
1第二章C++Builder基本程式設計範例把BCB安裝完成,也了解整個IDE介面後,我們終於要展開設計之路了。在這一章節,我們將了解到整個BCB的設計原理,物件、屬性、事件、方法到底是什麼?以及我們該如何建立視窗程式等,都將呈現在大家的面前。進而介紹如何更改整個專案的屬性及選項。2大綱•2-1.C++Builder程式設計原理•2-2.第一個視窗應用程式•2-3.C++Builder專案架構•2-4.C++Builder專案選項設定•本章習題32-1.C++Builder程式設計原理•C++Builder本身就是以C++為基礎的軟體開發系統,所以整個專案架構就是物件導向的架構。在這一小節裡,我們只稍微解釋了一下在BCB中最容易遇到有關於物件導向的名詞,我們將以最少的文字以及例子讓大家盡快的了解這些名詞的意義。至於詳細的物件導向原理或是C++的語法,可能就得請讀者自行研讀這方面的書籍,在這本書中不會提到這方面的東西。•2-1.1.什麼是物件(Object)–物件,照字面上的意義來說,就是一個一個的東西。沒錯,我們舉幾個生活上的例子來說明:腳踏車是一個物件,汽車也是物件,鍋子也是物件,房子也是物件。如以上所說,其實一般我們可以看的到,摸的到都可以稱作是物件。–在BCB裡面的物件則是一個一個的VCL元件,或是我們自己建立的物件也是,例如按鈕是個物件,選單也是個物件等等。簡單的說明一下物件的大概意義差不多就是這樣子了。42-1.C++Builder程式設計原理•2-1.2.什麼是屬性(Property)–屬性,它就是物件的特性、特徵。例如:汽車有顏色這個特徵,但是不同的汽車可能會有不同的顏色,所以顏色就是汽車的一個屬性,其餘的如汽車的馬力、汽車的車門數目、汽車的極速、汽車的排器量……等等,只要是用來描述這台汽車的東西都可以稱作是這台汽車的屬性。–反觀,在BCB中對於一個物件的屬性是哪些呢?以按鈕來說好了,按鈕的顏色、位置、大小……等等,都是按鈕的屬性。說到這邊,不知道大家對於屬性有沒有更進一步的認識呢?52-1.C++Builder程式設計原理•2-1.3.什麼是事件(Event)–事件,簡單來說就是會發生的事情。例如對於一台汽車來說,正在駕駛就是一種事件,轉彎、煞車等等都是。那對於BCB上的按鈕來說,按下按鈕就是一個事件。如果是對於整個視窗來說,開啟視窗也是一個事件、視窗移動、視窗關閉等等也都是事件。•2-1.4.什麼是方法(Method)–如果你要將汽車從紅色變成藍色,所使用的方法就是我們這邊所要說的方法。很簡單的,把這種觀念轉換到BCB上的物件,假設我現在想要讓按鈕變成Focused,那我只需要執行SetFocus這個方法。如果我要將一個字串(AnsiString)變成整數,我只需要使用ToInt這個方法。所以,我們只要想成,要作一件事情一定需要一個方法,那就可以很清楚的將方法的定義弄清楚了。62-2.第一個視窗應用程式•每當我們看到一個一個華麗的視窗應用程式時,是不是都有個夢想,我們也想自己寫一個這麼漂亮的東西出來。現在,我們將實現這個夢想。•2-2.1.如何建立/執行Windows應用程式我們將一步一步的帶領大家建立第一個視窗應用程式。現在我們執行BCB這套開發環境,執行後會出現如圖的畫面出現。72-2.第一個視窗應用程式–其實,這就是一個基本的視窗程式了,現在,我們接著按下『Run』這個按鈕或是『F9』,就會出現一個最簡單的視窗了。–接著我們選擇『CloseAll』,將所有的設計表格關閉,並且選擇不儲存。最簡單的視窗應用程式82-2.第一個視窗應用程式–當我們關閉所有開發程式之後,如果我們還想繼續開發一套新的應用程式,我們可以選擇表單中的New,或是直接點選New的按鈕,之後就會出現建立新應用程式的選單。92-2.第一個視窗應用程式•2-2.2.儲存專案內容–當我們開發程式當中,我們一定會常常儲存現在的成果,以避免當機或是程式無回應等造成的損失,這一小節我們將仔細的讓各位了解BCB中儲存專案的方法為何。我們儲存專案大致上分成四種:種類說明Save儲存目前正在編輯中的Form或是程式碼。SaveAs將目前正在編輯中的Form或是程式碼改成另一個檔名儲存。SaveProjectAs將目前正在編輯中的專案儲存成另外一個檔案名稱。SaveAll將目前正在編輯的Form、程式碼、專案等所有檔案全部儲存。10–我們可以在主選單中找到這四個選項,也可以在快速按鈕的區域找到其中兩個。–現在我們準備儲存我們目前的專案內容,我們選擇SaveAll的按鈕按下去後,第一個會出現的視窗會儲存目前的Form和程式碼,接著會再出現一個對話窗的畫面來儲存整個專案的內容及設定。『範例程式2-1』2-2.第一個視窗應用程式112-2.第一個視窗應用程式按下SaveAll的快速鈕儲存專案內容的畫面儲存Form及表單的畫面122-2.第一個視窗應用程式–若是我們只選擇Save而不是SaveAll的時候,只會出現類似前面儲存表單以及程式碼的畫面,並不會出現儲存專案的畫面。其實SaveAs跟SaveProjectAs這兩個儲存選項跟我們剛剛提到的幾乎一樣,只是這兩個選項會保留原本已經儲存的資料改存成另一個我們新指定的檔案而已。另存表單及程式碼另存專案132-2.第一個視窗應用程式•2-2.3.更改表單基本內容–在視窗的設計中,視窗本身就具有很多屬性可以供我們更改,我們在這一小節將介紹幾個常見的屬性,至於在BCB中的大部分屬性以及說明可以在BCB內的On-LineHelp中找到。–在更改表單內容這部分我們將舉幾個例子出來,讓大家直接從例子中學習。我們所舉的例子可能才兩三個,不過讀者可以自行變更各種不同的值試試看,相信一定會有更多不同的發現。Form的屬性14–Caption:•更改Caption屬性可以將視窗左上角的文字變換成我們想要的文字。例如我們在這個例子中將原本『Form1』的值改變成『MainForm』,那就會在Form的左上角直接呈現出結果。『範例程式2-3』–Name:•更改Name這個屬性就是變更這整個物件的名稱。例如原本Form的Name是『Form1』,也就是在程式的運作當中,這個Form的變數名稱就叫做『Form1』。如果現在我們將Name這個屬性的值改成『MainForm』,之後整個Form的名稱就得改用『MainForm』來代替。在底下的例子中,我們將Form的名稱改成『MainForm』,所以在程式中就必須改用MainForm來代替。『範例程式2-4、2-5』2-2.第一個視窗應用程式更改Form的Caption這個屬性152-2.第一個視窗應用程式使用Form1當作Name使用MainForm當作Name16–Position:•Position這個屬性控制了該應用程式被開啟時的預設位置。假設這個值設定成poScreenCenter的時候,只要執行這個程式的執行檔所跑出的視窗預設位置在螢幕中央。Position共有『poDefault』、『poDefaultPosOnly』、『poDefaultSizeOnly』、『poDesigned』、『poDesktopCenter』、『poMainFormCenter』、『poOwnerFormCenter』、以及『poScreenCenter』共八種不同的位置擺放方法。『範例程式2-6』2-2.第一個視窗應用程式將Position的屬性變成『poScreenCenter』172-2.第一個視窗應用程式–Icon:•Icon最主要是控制視窗程式的圖示畫面,如果我們更改了Icon的資料,Form就會馬上在左上角顯示出最新的Icon圖案。『範例程式2-7』。在這個範例中,我們首先先點選物件檢視器上的『Icon』這個屬性旁邊的那個小按鈕,之後便會跳出一個視窗讓我們選擇我們想要的Icon,在這邊我們是選擇CommonFile內Borland所提供的Icon,決定好Icon後就可以直接按下『OK』完成Icon的選擇•當你按下OK的那一瞬間,你可以稍微注意一下Form的最左上角,圖示是不是已經改變了呢!更改視窗程式的圖示182-2.第一個視窗應用程式–這邊我們雖然只舉了四個例子,相信大家還是可以了解更改這些『屬性』的方法,至於其他的VCL元件,如按鈕、文字方塊等等,也都可以直接使用這樣的方式更改屬性。更改Icon的資料後,Form馬上顯示新的Icon19•2-2.4.VCL元件位置亂跑的問題–利用BCB發展視窗應用程式的速度真的很快,不過普遍存在一個問題,那就是每個使用者個使用環境不同會造成視窗上元件位置的改變,甚至不見了。•這是因為每台電腦的螢幕解析度、字型大小等設定並不一定相同所造成的,這一小節我們就是要來探討這個問題,讓我們以後發展的程式不再有這些問題。『範例程式2-8』•會造成這些問題最主要的因素就是字型。不管你的解析度是高還是低都沒差別,因為用到多少個像素是不變的,但是字型就有差別了。原本一個字可能只需要12個pixel,但是現在卻要14個pixel,理所當然的,那些VCL元件一定被擠的亂七八糟。而Windows底下的小型字跟大型字的差別就是在這邊,一個是96dpi,另一個則是120dpi,難怪元件會跑的亂七八糟。2-2.第一個視窗應用程式20–其實解決這個問題的方法很簡單,那就是更改Form的屬性,你只需要將BorderStyle設定成『bsSingle』就可以了。2-2.第一個視窗應用程式小型字環境底下正確的顯示大型字環境下導致VCL元件位置亂了更改BorderStyle屬性更改BorderStyle之後正確顯示VCL元件位置212-2.第一個視窗應用程式–在利用BCB設計視窗程式還有一個常見的問題,那就是我設計出來的程式到別台電腦上執行,可是卻看不到畫面,也沒有錯誤訊息,在工作管理員中也有看到這個應用程式在執行,那到底是什麼原因呢?•很簡單,這只不過是因為BCB在開發專案的時候,Position這個屬性預設是poDesigned,這個意思就是說,開發程式時,這個視窗在螢幕上的那個位置被Compile成執行檔,執行出來就是在那個地方。所以有可能我們在1024x768的解析度下設計,當時Form的左上角位置剛好不在800x600的區域內。如此,將這個程式拿到800x600的螢幕解析度上跑就會發生剛剛所說的情況了。•解決方法也很簡單(也有比較難的方法,我們留到後面再談),只要我們將Position這個屬性的值改成poScreenCenter,那以後每次執行這個視窗都會在螢幕的正中間出現了(無論你的解析度如何)。222-3.C++Builder專案架構•在這一小節裡我們將介紹一下BCB的專案架構。–在此,我們不希望帶入一些大部分人都看不懂的架構圖片或是解說,我們改以簡單、明瞭的詞句讓各位programmer各能夠掌握自己所開發的程式。–BCB跟一般的物件導向程式一模一樣,有著一大堆的繼承關係,如果讀者對於繼承的關係有興趣,可以自行參考OnLineHelp的內容,裡面有很詳盡的解說。在這邊我們主要要告訴各位的是各個檔案與BCB之間的關係:232-3.C++Builder專案架構檔案格式用途說明.bpr檔案以bpr為副檔名的這個檔案就是整個專案的Makefile,想想看,這個檔案名稱是不是就是我們的專案名稱呢!這個檔案是以XML格式寫成的,提供所有的資訊給BCB的Compiler,以便BCB將我們所開發的程式編譯成執行檔。.res檔案這個檔案就是此應用程式的資源檔。這個檔案儲存了該專案的圖示、游標等資源。.dfm檔案.dfm檔案儲存的就是表單內容。這個Form裡面有多少元件,放的位置在哪,有哪些屬性等等,都是由這個檔案負責紀錄。一般來說一個dfm檔案會對應一個檔名相同但是副檔名不同的cpp檔案,而這個cpp檔案內所寫的程式碼就是針對這個Form內所有元件(包括Form)所寫的。表:各檔案與BCB之間的關係說明242-3.C++Builder專案架構檔案格式用途說明.cpp檔案.cpp這些
本文标题:第2章 C++ Builder 基本程式
链接地址:https://www.777doc.com/doc-3369873 .html