對齊組件
不管Snap to Grid選項是否開着,在安放完組件后有時需要對齊。對齊組件是指沿某組件的邊對齊幾個組件,把組件放在窗體中央,或依一定距離間隔組件。
有兩種方式對齊組件:
- 使用Alignment面板或Alignment對話框。
- 改變組件的Align屬性。
Note
你也許注意到有些組件的Alignment屬性,它只屬於組件的文本對齊(居中、左對齊或右對齊),與窗體上對齊組件無關。
1、 Alignment面板與Alignment對話框
經常要相對於窗體或另外組件來移動組件或設置大小。Alignment面板包含幾個按鈕幫助完成這個任務。Alignment對話框與Alignment面板以不同方式執行相同操作。
要顯示Alignment面板,從主菜單選【View | Alignment Palette】,如下圖所示:
Tip
Alignment面板能節省大量工作,不必花太多時間把它們排成行,把組件放在窗體上,用Alignment面板確定它們的位置。
Align Left Edges 按鈕用於左對齊排列。
啟動空窗體,做以下工作:
(1)在窗體上隨意放置5個按鈕Button,不管左邊是否對齊;
(2)用拖動邊界矩形圍繞按鈕選擇它們,選擇表示顯示所有按鈕都選中,如下圖:
(3)從主菜單選擇【View | Alignment Palette】,顯示Alignment面板,如果需要的話移動Alignment面板,使它不至於掩蓋窗體。
(4)Alignment選線板上點擊“Align Left Edges”按鈕,所有的按鈕按左對齊排列,如下圖:
現在來看另一個對齊選項,Space Equally, Vertically對齊選項用於等間距隔按鈕,按鈕仍是選擇的,所做的只是點擊下“Space Equally, Vertically”按鈕,按鈕都完全等距離間隔了。如下所示:
Note
Space Equally, Vertically對齊選項把列中第一個(頂部組件)與最后一個(底部組件)之間的組件等距離間隔。在選Space Equally, Vertically對齊選項前,保證第一個和最后一個組件在想要的位置。對於Space Equally, Horizontally對齊選項也是一樣的。
Center Horizontally in Window與Center Vertically in Window對齊選項的功能與其名稱指示的一樣。這些選項對把單個控件或控件組放到窗體中央是很方便的。只要按鈕組仍是選擇的,在Alignment面板上點擊Center Horizontally in Window和Center Vertically in Window按鈕,選中的5個按鈕就會被水平垂直的放到窗體的中央,如下圖:
Note
Center Horizontally in Window與Center Verically in Window對齊選項可用於對齊其他組件中的組件,如面板Panel上的按鈕。組件被水平或垂直居中,不管其父組件為面板Panel,窗體Form和其他容器組件。
Align Tops,Align Bottoms及Align Right Edges對齊選項與之前的Align Left Edges一樣。請自行嘗試效果。
Tip
在使用任何邊對齊選項時,選擇的第一個組件為參照點。例如上面5個按鈕中如果先選擇Button3,然后用Shift+Click選擇其余按鈕。當點擊“Align Left Edges”對齊時,Button3按鈕保持不動,其他按鈕按照Button3的左邊排列,因為Button3是參照組件。
Align Horizontal Centers與Align VerticalCenters選項用於組件相對於另一個居中。舉例說明,啟動新窗體,做以下事情:
(1)在組件面板上點Additional標簽,選擇Shape組件,在窗體右上方某個地方點擊放置此Shape組件;
(2)改變Shape屬性為stCircle;
(3)改變Width屬性和Height屬性為150;
(4)雙擊Brush屬性,改變Color屬性為clBlack,窗體如下:
(5)在窗體上安放另一個Shape組件;
(6)改變第二個Shape組件的Shape屬性為stCircle,在屏幕上有兩個不同大小的圓——白色的小圓和黑色的大圓,窗體現在看起來如下:
(7)點擊黑色的大圓,按住Shift鍵點擊白色的小圓,選中兩個圓;
(8)從主菜單選擇【View | Alignment Palette】;
(9)在Alignment面板上點擊Align Vertical Centers按鈕,使得兩個圓垂直中心對齊,效果如下:
(10)再點擊Align Horizontal Centers按鈕,使得兩個圓水平中心對齊,輪胎就做成了,如下圖:
注意,由於先選的是黑圈,它固定不動(它是參照組件),在點擊對齊按鈕時白圈移動。在單個控件上使用,這個兩個對齊選項沒有作用。
像組件選項面板(Component Palette)一樣,Alignment選項也有快捷菜單。把鼠標放到Alignment面板上,右擊彈出快捷菜單,如下圖:
- Stay on top 使得Alignment面板總在最頂層。這在經常切換Form Designer和Code Editor時有用,因為Alignment小窗口容易丟失。
- Show Hints 打開或關閉Alignment面板按鈕的工具提示。
- Hide 隱藏Alignment面板(也可用Alignment面板上的關閉按鈕)。再次顯示它,需從【View | Alignment Palette】再次選擇。
- Help 關於Alignment面板的幫助信息。
Alignment對話框執行與Alignment面板相同的動作。要調出Alignment對話框,從主菜單【Edit | Align…】或從Form Designer快捷菜單中選擇【Position | Align…】,對話框如下:
大多數情況下,Alignment面板更容易使用;如果願意,當然也可以用Alignment對話框。
2、 使用Align屬性
另一種類型的對齊是使用Align屬性,此屬性控制如何與父組件對齊。Align屬性的可能值如下:
- alBottom 組件與父窗口低端對齊。StatusBar狀態行就是沿主窗體底端對齊的組件例子。
- alClient 組件擴張充滿父窗口用戶區域;如果其他組件占了部分用戶區域,它充滿其余用戶區域。
- alLeft 組件沿父窗口左邊對齊。
- alNone 組件與父窗口無特殊關系地放置着,對多數組件此為缺省值。
- alRight 組件沿父窗口右邊對齊。
- alTop 組件沿父窗口上邊對齊。
現在舉例子,來解釋Align屬性。啟動空窗體,執行以下步驟:
(1)在組件面板上點擊Standard標簽,選擇Panel組件,把它任意安放在窗體上,如圖:
(2)在Object Inspector中設置Panel的Align屬性為alTop,面板Panel在窗體頂端對齊,充滿窗體整個寬度,如圖:
(3)試着移動面板到窗體中央,它會又跳回頂端。
(4)試着把面板寬度變短,它仍保持原來的寬度。
(5)改變面板的高度,面板的高度可以改變。
(6)改變Align屬性為alBottom,面板粘貼到窗體的底端。如圖:
(7)改變Align屬性為alRight,然后設置為alLeft,面板的寬度可改變,面板的高度無法改變。如圖:
(8)改變Align屬性為alClient,面板擴張充滿這個客戶區,不能再任意方向改變其大小。如圖:
(9)改變Align屬性為alNone,面板又可以移動和改變大小了。
改變Align為任何異於alNone的值,都可以把面板粘貼到窗體的邊上,在alClient情況下,面板粘貼在四個邊上。
設置Tab順序
New Term
Tab順序(tab order)指用戶在鍵盤上按Tab鍵時組件接收輸入聚焦的順序。
Delphi窗體使用Tab鍵自動支持組件導向,這指可以用Tab從組件向前移動到組件,用Shift+Tab向后移。
Note
有兩種類型可視化組件。
Windowed(窗口化)組件是接收鍵盤聚焦的組件,這指它能用鼠標點擊或用Tab鍵擊。當組件有鍵盤聚焦時,它可能顯示特殊光標(如編輯控件中I型光標)或在組件上有聚焦矩形。Windowed組件包括Edit、Memo、ListBox、ComboBox及Button組件等。
Non-Windowed組件是不接收鍵盤聚焦的組件,如Image、SpeedButton、Label、Shape及其他許多都是Non-Windowed組件。
Tab順序是用於Windowed組件,Non-Windowed組件被排除在Tab順序之外。
Tab順序最初基於窗體設計時組件的安排順序。可通過改變Object Inspector中每個控件的TabOrder屬性改變Tab順序,但此方法比較麻煩。要對每個控件單個去做。Edit Tab Order對話框提供了更容易的辦法。如下圖:
從主菜單選擇【Edit | Tab Order…】打開Edit Tab Order對話框,它顯示當前窗體上的所有窗口組件,不顯示非窗口組件。要改變Tab順序,在順序列表中點擊要移動的組件名稱,然后通過上下按鈕改變順序,最后點擊OK來設置完成,通過瀏覽每個控件的TabOrder屬性確認新設置。
Note
Tab Order從0開始,第一個組件在Tab順序中為0,第二個為1等等。


















