當你在一個視覺化開發環境工作時,你的時間花在應用的兩個不同的部分:視覺化設計器和程式碼編輯器。 設計器讓你在視覺化層級上操作元件(諸如你將一個按鈕放置在一個窗體上),或在一個非視覺化層級上工作(諸如當你放置一個DataSet元件在一個資料模組上時)。你能在圖表1.1的操作中看見一個窗體和一個資料模組。在這兩種情況中,設計器允許你選擇你需要的元件且設定它們的屬性的初始值。
圖表1.1在Delphi 7 IDE中的一個窗體和一個資料模組
程式碼編輯器是你寫程式的地方。在視覺化環境中寫程式碼最明顯的方式是包含對事件作出反應,事件由程式使用者執行的操作開始,諸如單擊一個按鈕或選擇一個列錶框的一個選項。你能使用同樣的方式來處理內部事件,諸如涉及資料庫變更的事件或來自作業系統的通知。
當程式設計師對Delphi熟知時,他們經常以主要編寫事件處理(event-handling)程式碼為始發端,然後轉移到撰寫自己的類別和元件,最後花費大部分時間在編輯器中。 因為本書涵蓋的內容遠遠超過視覺化編程,試圖幫助你掌握Delphi的整個力量,隨著行文的深入,你將看見更多的程式碼,更少的窗體。
一種重要的變化首次在Delphi 6中出現。 IDE現在允許你在兩個不同的視覺化類別庫上工作: VCL (Visual Component Library,視覺化元件庫)和CLX (跨平台元件庫,Component Library for Cross-Platform)。 當你建立一個新專案時,你可以很簡單地從兩個類別庫中選擇你想要使用的一個,這樣開始:透過File ® New ® application指令,建立一個典型的基於VCL的Windows程式;透過File ® New ® CLX Application 指令建立一個新的基於CLX的可移植(portable)應用程式。
註解 | CLX是Delphi的跨平台函式庫,它允許你用Kylix重新編譯你的程式碼以運行在linux下。 你可以在第5章,“可視化控制”,讀到關於CLX和VCL的更多內容。在Delphi 7中使用CLX更有趣,因為Kylix的Delphi語言版與Windows產品一起發售。 |
當你建立一個新項目或開啟現有的一個時,元件板被安排了只顯示與目前庫(雖然大多數控制項是共享的)有關的控制項。 當時你操作一個非視覺化的設計器時(諸如一個資料模組),可視化組件的組件板標籤隱藏起來了,不可見。
程式設計師能夠以各種方式自訂IDE— 典型的,打開許多視窗的,安排它們的,相互停靠的。 然而,你經常需要在設計時打開一套視窗的設置,而在調試時又打開另一套不同的視窗設置。 同樣地,你可能在操作窗體時需要一種佈局,而在只使用編輯器編寫元件或低階程式碼時又需要一個完全不同的佈局。 為了每個這樣的需要重新整理IDE是一件非常乏味的工作。
由於這個原因,Delphi允許你以一個名稱保存特定的IDE視窗(稱為桌面desktop ,或者Global Desktop,以區別於專案桌面PRoject Desktop)很並且容易恢復它。 你也可以保存你的缺省調試設定中的一個,當你開始調試程序時它將自動被恢復。 所有這些特性可從Desktops toolbar取得。 你也能使用View ® Desktops選單操作桌面設定。
桌面設定資訊被保存在DST檔案中(儲存在Delphi的bin目錄中),它們是偽裝的INI檔案。 被保存的設定包括主要的窗口,Project Manager,Alignment Palette,Object Inspector (包括它的property category settings) ,editor windows (Code Explorer 和Message View的狀態),還有許多其它的位置,加上各種窗口的停靠狀態。
這是從一個DST檔案中摘錄的一小段,它應該是很容易讀的:
[Main Window]
Create=1
Visible=1
State=0
Left=0
Top=0
Width=1024
Height=105
ClientWidth=1016
ClientHeight=78
[ProjectManager]
Create=1
Visible=0
State=0
……
Dockable=1
[AlignmentPalette]
Create=1
Visible=0
……
桌面設置越過項目設置,項目設置被保存在一個類似結構的DSK檔案中。 桌面設定幫助除去當你在機器(或在開發者之間)之間移動一個項目並且不得不重新把窗口整理成為你愛好的時發生的難題。 Delphi將每一用戶的全域桌面設定和每個專案的桌面設定分開,以便更好地支援團隊開發。
技巧 | 如果你打開Delphi並且不能看見窗體或者其它窗口,我建議你嘗試檢查(或刪除)桌面設定(從Delphi的bin目錄下)。 如果你打開被一個不同的使用者接受的一個專案並且不能看見一些視窗或不喜歡桌面佈局,再次載入你的全域的桌面設定或刪除專案DSK檔案。 |