對於經常使用Delphi的用戶,下面的講解可能有點太初級,即便如此也最好瀏覽一下,這樣可以發現以前並不知道的東西或重新回憶起已遺忘的東西。
使用Form Designer
Delphi Form Designer是強有力的可視化程序設計工具,它能安放組件、選擇組件、移動組件、重新設置組件大小、以及對齊組件等。Form Designer能設置窗體本身的大小和位置、增加菜單、建立專用對話框——建立典型窗口程序的用戶接口時所需要的一切。
窗體設計器剛開始的時候是一個空白的窗口。可以把窗口設計器看作是藝術家的畫布,在這塊畫布上可以描繪各種各樣的Windows應用程序。應用程序的用戶界面正是由窗體實現的。只要從組件面板上選擇一個組件並把它放到你的窗體上,就能實現與窗體設計器的交互。可以用鼠標調整組件在窗體設計器上的位置和大小,還可以用Object Inspector和代碼編輯器來控制組件的外觀和行為。
希望大家在閱讀時,如果對某些東西怎樣運作感到奇怪,可以隨時停下來實驗。有時幾分鍾的實驗會教給以后能使用很長時間的技術。
Form Designer的快捷菜單
啟動Delphi或者開發新項目時,面對的是Form Designer中的空窗體。Form Designer像大多數Delphi窗口有相匹配的快捷菜單。如下圖所示:
- Align to Grid 將選擇的組件與Form Designer坐標網格對齊。
- Bring to Front 將選擇的組件拿到所有其他組件的前面。
- Send to Back 將選擇的組件送到所有其他組件的后面。
- Revert to Inherited 當使用由Object Repository移植來的窗體時,將選擇的控件恢復原始狀態
- Align… 顯示Alignment對話框
- Size… 顯示Size對話框
- Scale… 顯示Scale對話框
- Tab Order… 顯示Edit Tab Order對話框
- Creation Order… 顯示Creation Order對話框
- Flip Children… 對非英文版本的Windows,此命令改變組件的閱讀順序,對英文不能。
- Add to Respository… 增加窗體到Object Repository,定制的窗體可存起來以后使用。
- View as Text… 在Code Editor中以文本方式顯示窗體描述。從Code Editor快捷菜單中選View as Form回到原窗體。也可用Alt + F12切換顯示View as Text / View as Form選項。
- Text DFM 以文本文件格式保存窗體。
放置組件
在窗體上安放組件是很容易的。所要做的就是從組件選項板上選擇所需要的組件,在窗體上點擊來安放組件。在窗體上點擊時,組件的左上角放在點擊位置。注意在組件選項板上點擊按鈕時,按鈕就被壓下了。在窗體上點擊安放組件時,組件選項板上的按鈕又被彈出以顯示動作完成。
Tip
在前面講解中已經學到了,可以在窗體上多次安放組件,開始在調色板上選擇組件的按鈕時按住Shift,每次在窗體上點擊,新的組件就會增加。在組件選項板上點擊Arrow(箭頭)停止安放組件。
大多數組件是可以設置大小的。可以把組件安放在窗體上,然后設置其大小,或安放的同時來進行設置。要在安放組件的同時設置其大小,就可以在要安放的地方點擊,然后拖動鼠標,直到組件大小合適,釋放鼠標,組件就按指定的大小安放了。
Note
並不是所有的組件用這種方式來設置大小。例如非可視化組件,在窗體上用圖標表示。盡管可點擊和拖動來安放非可視化組件,拖動大小則被忽略。另一個例子是單行編輯組件(Edit),此組件可用拖放安放,但只有拖動寬度能用,而拖動高度則被忽略。
Caution
如果在用拖動方式安放控件時如果改變想法,可以在釋放鼠標前按ESC取消操作,但組件的按鈕在組件選項板上仍是按下狀態,因此可以繼續放置組件,如果要取消,則按Arrow箭頭按鈕即可返回到組件選擇狀態。
Form Designer網格
Form Designer 內部坐標網格幫助設計窗體。坐標網格大小初始設置為水平8像素,垂直8像素。當Form Designer設定為顯示坐標網格時,將在每個坐標網格交叉處安放一個點。安放在窗體上的組件會跳到最近的坐標網格上。“Snap to grid”是指組件的左上角自動跳到最近坐標網格,只要足夠接近正確的位置,Form Designer就自動把組件安放在最近的坐標網格上。
可以通過Delphi7主菜單的【Tool | Environment Options…】打開Environment Options對話框中的Designer頁面改變坐標網格的設置。這里可以改變坐標網格的大小或者關掉Snap to grid特征,也可以打開或關閉“Display grid”網格坐標顯示,當坐標網格顯示關閉時,坐標網格仍是有效的(當Snap to grid是開着的),但標記坐標網格的點沒有畫在窗體上。