您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > Delphi编程从入门到精通 01(共4册)
第1章Delphi使用概論11第1章Delphi使用概論本書的第一章在內容上力求淺顯,其中甚至有一步接一步的操作說明,即使是從來沒有使用過Delphi的程式設計師,閱讀本章相信也不至於有任何問題。我在這一章中示範性的完成一個簡單的應用程式,除了用以說明典型的Delphi的程式開發流程,並且也以這個實例探討Delphi專案是由哪些檔案所組成,接著是與寫作程式息息相關的工具,包括程式編輯器(ProgramEditor)、除錯器(Debugger)的使用等等。Delphi程式開發流程典型的Delphi應用程式開發流程大致上可分為以下兩大步驟:設計包括視窗外觀、主選單、按鈕等等的使用者操作介面。撰寫使用者操作介面引發的事件處理程序以及其他相關程式。上述的兩大設計工作不論是介面的設計或者程式的撰寫,都是在所謂的整合開發環境(IDE,IntegratedDevelopmentEnvironment)中進行的,此環境不僅能在設計階段就對未來成品的外觀擁有立即的視覺效果,其他的開發工具如程式編輯器與除錯器等也都整合在同一個環境中隨手可得。關於這些我在本章將會一一加以說明,首先,讓我們快速的瀏覽一遍Delphi的整合開發環第一篇Delphi與ObjectPascal12境。介紹Delphi的整合開發環境Delphi在啟動後,會自動幫我們建立一個新的專案,內含一個空白的視窗(按Delphi的說法是:Form),此時,整合開發環境的外觀大致如圖1-1所示:CodeEditorCodeExplorerForm(Windows)在這裏進行設計ObjectInspectorSpeedbarComponentPalette圖1-1/Delphi4的整合開發環境圖1-1中明顯看得到的工具還有:Speedbar,快速工具列。ComponentPalette,元件盤。ObjectInspector,物件檢視器,用來檢視並調整Form或Form上頭各元件的屬性值。第1章Delphi使用概論13CodeEditor1,程式編輯器,我們在此編輯區編修程式。CodeExplorer,程式瀏覽器,一個以樹狀階層式用來表達專案各物件(Object)、方法(Method)以及參照到哪些單元(Unit)的工具,利用它,不僅專案的結構一目瞭然,以滑鼠在特定項目點兩下,CodeEditor將叫出其所屬程式。設計的流程通常是這樣的:建立一個新的專案──接著在元件盤選擇需要的元件並將其一一放置到Form上滑鼠拖曳調整各元件的大小與位置,或使用ObjectInspector調整元件的其他屬性內容以ObjectInspector指定各元件的事件處理程序在CodeEditor編修事件處理程序以及其他處理程式【Run/Run】(或者按F9)測試執行。這樣的說明對於第一次使用Delphi的讀者而言可能還不夠具體,接下來,我將配合圖1-2逐項加以說明。調整元件的外觀與其他屬性 增減元件、指定元件的事件處理程序時,Delphi自動維護這段程式。圖1-2/使用Delphi整合開發環境設計使用者操作介面1或者說ProgramEditor,Inprise原版手冊同時使用了這兩個名詞。第一篇Delphi與ObjectPascal14放置元件當然啦!你一定會先考慮程式外觀大概長什麼樣子有什麼功能,正式動手時,頭一件事就是將所需的元件一一放進Form上頭。方法很簡單:點一下右上角元件盤裏頭的元件,然後在Form上點一下,元件會以其預設的大小出現在Form上頭;或者,你也可以在選擇元件後,直接在Form上頭以滑鼠拖曳的方式拉出元件的大小與位置。VCL/元件物件(Object)是根據類別(Class)建立的,這些物件可以在DelphiIDE設計階段放入Form中的我們稱之為元件(Component),Windows系統預先定義好的子視窗型態的控制項如按鈕、輸入盒等等,在Delphi也都以元件的面目出現。要說Delphi的程式是由一個又一個元件拼湊起來的並不為過,就像IC安插到主機板,這些元件可以很順利地併進我們程式中並與其他元件共同合作。IDE右上角元件盤裏頭出現的就都是預備為我們所用的元件,它們都來自於一個結構緊密的ApplicationFramework,也就是VCL(VisualComponentLibrary)。此外,凡是從標準VCL中的類別繼承,符合Delphi元件寫作規範可以安裝進元件盤裏頭的也叫元件,這類客製元件(CustomComponent)的數量相當龐大,網路上估計有萬餘個這類的元件。當你放置元件到Form上頭時,程式編輯器中的變化是值得注意的──Delphi會在我們加入元件到Form中時,自動在TForm1這個類別(Class)裏幫我們加入這些元件的程式碼(如圖1-2);同時,不論是刪除元件或者更改元件名稱,介於TForm1=Class(TForm)與private保留字之間的原始碼也會相應改變。第1章Delphi使用概論15請注意!介於TForm1=Class(TForm)與private保留字之間的原始碼是由Delphi自動負責維護的,除非是有把握,否則應該避免手動增刪這段程式的內容。改變元件的大小與位置設計使用者操作介面時,最常進行的動作大概就是改變元件的大小與位置了──直接以滑鼠拖曳Form上的元件就可以改變其位置(如圖1-2的第二步驟)。滑鼠點一下Form上的元件時在元件四周將會有八個控點,拖曳這八個點可以改變元件的大小2。至於各個元件賴以寄存的Form,就當它是一般視窗逕行操作即可,拖曳視窗標題與邊緣分別可以改變Form的位置與大小。設定元件的屬性值事實上,以滑鼠改變元件的大小與位置,改變的不過只是元件眾多屬性其中的Left、Top、Width、Height等四個屬性而已,元件其他屬性值的指定在設計階段則透過ObjectInspector進行修改。怎麼做呢?如果你是一邊看書一邊練習,或者已經有過Delphi的設計經驗的話,應該已經注意到:當滑鼠點按(Click)Form上頭的元件時,ObjectInspector會同步顯示該元件的屬性表;若是改從ObjectInspector的下拉式選單選擇某一元件時,Form上的相應元件也將同步被選取。換句話說,Form上的元件與ObjectInspector會同時反應彼此的情況。選取元件後,直接在Properties屬性表中對各屬性指定新值即可。通常的情況是輸入數值或者文字(例如改變Button1的Caption),此外,某些屬性會提供下拉式選單讓我們選擇(例如Color屬性會出現色彩清單以供選擇),如果屬性的右端看到「…」按鈕,就表示2有些元件(例如本例的TTimer)的大小是固定的,這類元件通常是在執行期間(Runtime)時看不到的「非視覺化元件」(Non-visualComponent)。第一篇Delphi與ObjectPascal16點一下該按鈕會有對話盒3協助設定該屬性的內容(例如Font屬性會出現字型設定對話盒)。好了,現在你知道怎麼放元件,也知道該怎麼調整元件位置大小以及其他屬性,請練習一下吧──從元件盤的Standard分類標籤,分別選擇TLabel、TCheckBox、TButton等元件並放置到到Form中,另外,也放一個System分類標籤中的TTimer元件進去。然後將操作畫面調整成圖1-3的樣子:圖1-3/我的小時鐘的使用者操作介面設計完成圖「我的小時鐘」各元件的屬性設定:#0001objectfrmMyClock:TfrmMyClock#0002Left=371#0003Top=146#0004BorderIcons=[biSystemMenu,biMinimize]#0005BorderStyle=bsSingle#0006Caption='我的小時鐘'#0007ClientHeight=70#0008ClientWidth=369#0009Font.Charset=CHINESEBIG5_CHARSET#0010Font.Color=clWindowText#0011Font.Height=-16#0012Font.Name='細明體'#0013Font.Style=[]#0014Position=poScreenCenter#0015PixelsPerInch=96#0016TextHeight=16#0017objectlblTime:TLabel#0018Left=8#0019Top=8#0020Width=563Delphi管這個叫「屬性編輯器」(PropertyEditor)第1章Delphi使用概論17#0021Height=16#0022Caption='lblTime'#0023end#0024objectchkbxShowDate:TCheckBox#0025Left=8#0026Top=40#0027Width=97#0028Height=17#0029Caption='顯示日期'#0030State=cbChecked#0031TabOrder=0#0032end#0033objectbtnExit:TButton#0034Left=288#0035Top=8#0036Width=75#0037Height=25#0038Caption='&Exit'#0039TabOrder=1#0040OnClick=btnExitClick#0041end#0042objecttmrClock:TTimer#0043OnTimer=tmrClockTimer#0044Left=336#0045Top=40#0046end#0047end上述的屬性設定表是怎麼來的呢?基本上我也算是很懶的人,當然不會採用手動輸入這種又慢又容易出錯的方式。想要取得Form與下轄元件各屬性之文字敘述時,請以滑鼠右鍵點一下Form,從彈出的快捷功能表選擇【ViewasText】即可;以滑鼠右鍵從從快捷功能表中選擇【ViewAsForm】,可還原回之前以Form為主體的設計模式。沒錯,雖然基本上我的確是很懶的人,但是剛才的屬性表並沒有因為偷懶而漏列某些屬性。事情是這樣的:各元件的屬性值在元件的原始程式通常都會寫明其預設值,我們的檔案存檔時,只有與預設值不同的屬性才會被特別記錄下來以節省存取時間與檔案大小。因此,雖然光是btnExit就有數十個屬性,剛才我們卻只看到六個。第一篇Delphi與ObjectPascal18寫作程式好了,這個小時鐘已經初具外觀,雖然已經可以執行,點了按鈕也的確會看到它陷一下,然而,除此之外幾乎什麼事也沒做。讓我們繼續為它加上程式處理。「滑鼠點按」是一個「事件」,換句話說,有一個「按鈕被滑鼠點了一下」這件事發生了,當這件事發生時,應該有一個相應的處理程序接手此一事件的處理。簡單地說,當滑鼠點一下按鈕時,我們的程式該有什麼反應。請想像一下消防隊的情況,消防隊員並不會挨家挨戶不時地詢問是否有火警發生,而是平常就只是預備在那裏,隨時應付可能的突發狀況,電話進來了就觸發滅火的任務。寫作視窗程式有點像是這樣,我們並不預期使用者會不會使用按鈕或者會先使用哪個按鈕,而只是單純的寫好這個按鈕被點到時該作的事。以「我的小時鐘」為例,btnExit(從剛才的屬性設定可以看出我已經將Button1改名成btnExit了)是打算用來關閉frmMyClock的按鈕,它的點按事件(OnClick)處理程序怎麼寫呢?操作程序是:1.以滑鼠點一下frmMyClock(我們正在設計的Form)的btnExit按鈕。2.然後是ObjectInspector,不同的是,這次我們並不是要改屬性4,而是先點一下Event這個標籤,表中列出的是btnExit按鈕的事件表,其中的第一個是OnClick。3.在OnClick的右邊點兩下。輸入焦點此刻會立即切換到程式編輯器,相關的程序宣告都已經由Delphi預備妥當,游標也已準確的落到TfrmMyClock.btnExitClick程序的begin..en
本文标题:Delphi编程从入门到精通 01(共4册)
链接地址:https://www.777doc.com/doc-6237660 .html