Delphi Form Designer (窗體設計器)之四


對齊組件

不管Snap to Grid選項是否開着,在安放完組件后有時需要對齊。對齊組件是指沿某組件的邊對齊幾個組件,把組件放在窗體中央,或依一定距離間隔組件。

有兩種方式對齊組件:

  • 使用Alignment面板或Alignment對話框。
  • 改變組件的Align屬性。

Note

你也許注意到有些組件的Alignment屬性,它只屬於組件的文本對齊(居中、左對齊或右對齊),與窗體上對齊組件無關。

1、 Alignment面板與Alignment對話框

經常要相對於窗體或另外組件來移動組件或設置大小。Alignment面板包含幾個按鈕幫助完成這個任務。Alignment對話框與Alignment面板以不同方式執行相同操作。

要顯示Alignment面板,從主菜單選【View | Alignment Palette】,如下圖所示:

0129

Tip

Alignment面板能節省大量工作,不必花太多時間把它們排成行,把組件放在窗體上,用Alignment面板確定它們的位置。

Align Left Edges 按鈕用於左對齊排列。

啟動空窗體,做以下工作:

(1)在窗體上隨意放置5個按鈕Button,不管左邊是否對齊;

(2)用拖動邊界矩形圍繞按鈕選擇它們,選擇表示顯示所有按鈕都選中,如下圖:

0130

(3)從主菜單選擇【View | Alignment Palette】,顯示Alignment面板,如果需要的話移動Alignment面板,使它不至於掩蓋窗體。

(4)Alignment選線板上點擊“Align Left Edges”按鈕,所有的按鈕按左對齊排列,如下圖:

0131

現在來看另一個對齊選項,Space Equally, Vertically對齊選項用於等間距隔按鈕,按鈕仍是選擇的,所做的只是點擊下“Space Equally, Vertically”按鈕,按鈕都完全等距離間隔了。如下所示:

0132

Note

Space Equally, Vertically對齊選項把列中第一個(頂部組件)與最后一個(底部組件)之間的組件等距離間隔。在選Space Equally, Vertically對齊選項前,保證第一個和最后一個組件在想要的位置。對於Space Equally, Horizontally對齊選項也是一樣的。

Center Horizontally in WindowCenter Vertically in Window對齊選項的功能與其名稱指示的一樣。這些選項對把單個控件或控件組放到窗體中央是很方便的。只要按鈕組仍是選擇的,在Alignment面板上點擊Center Horizontally in Window和Center Vertically in Window按鈕,選中的5個按鈕就會被水平垂直的放到窗體的中央,如下圖:

0133

Note

Center Horizontally in WindowCenter Verically in Window對齊選項可用於對齊其他組件中的組件,如面板Panel上的按鈕。組件被水平或垂直居中,不管其父組件為面板Panel,窗體Form和其他容器組件。

Align TopsAlign BottomsAlign Right Edges對齊選項與之前的Align Left Edges一樣。請自行嘗試效果。

 

Tip

在使用任何邊對齊選項時,選擇的第一個組件為參照點。例如上面5個按鈕中如果先選擇Button3,然后用Shift+Click選擇其余按鈕。當點擊“Align Left Edges”對齊時,Button3按鈕保持不動,其他按鈕按照Button3的左邊排列,因為Button3是參照組件。

Align Horizontal CentersAlign VerticalCenters選項用於組件相對於另一個居中。舉例說明,啟動新窗體,做以下事情:

(1)在組件面板上點Additional標簽,選擇Shape組件,在窗體右上方某個地方點擊放置此Shape組件;

(2)改變Shape屬性為stCircle

(3)改變Width屬性和Height屬性為150

(4)雙擊Brush屬性,改變Color屬性為clBlack,窗體如下:

0134

(5)在窗體上安放另一個Shape組件;

(6)改變第二個Shape組件的Shape屬性為stCircle,在屏幕上有兩個不同大小的圓——白色的小圓和黑色的大圓,窗體現在看起來如下:

0135

(7)點擊黑色的大圓,按住Shift鍵點擊白色的小圓,選中兩個圓;

(8)從主菜單選擇【View | Alignment Palette】;

(9)在Alignment面板上點擊Align Vertical Centers按鈕,使得兩個圓垂直中心對齊,效果如下:

0136

(10)再點擊Align Horizontal Centers按鈕,使得兩個圓水平中心對齊,輪胎就做成了,如下圖:

0137

注意,由於先選的是黑圈,它固定不動(它是參照組件),在點擊對齊按鈕時白圈移動。在單個控件上使用,這個兩個對齊選項沒有作用。

像組件選項面板(Component Palette)一樣,Alignment選項也有快捷菜單。把鼠標放到Alignment面板上,右擊彈出快捷菜單,如下圖:

0139

  • 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…】,對話框如下:

0138

大多數情況下,Alignment面板更容易使用;如果願意,當然也可以用Alignment對話框。

 

2、 使用Align屬性

另一種類型的對齊是使用Align屬性,此屬性控制如何與父組件對齊。Align屬性的可能值如下:

  • alBottom 組件與父窗口低端對齊。StatusBar狀態行就是沿主窗體底端對齊的組件例子。
  • alClient 組件擴張充滿父窗口用戶區域;如果其他組件占了部分用戶區域,它充滿其余用戶區域。
  • alLeft 組件沿父窗口左邊對齊。
  • alNone 組件與父窗口無特殊關系地放置着,對多數組件此為缺省值。
  • alRight 組件沿父窗口右邊對齊。
  • alTop 組件沿父窗口上邊對齊。

現在舉例子,來解釋Align屬性。啟動空窗體,執行以下步驟:

(1)在組件面板上點擊Standard標簽,選擇Panel組件,把它任意安放在窗體上,如圖:

0140

(2)在Object Inspector中設置Panel的Align屬性為alTop,面板Panel在窗體頂端對齊,充滿窗體整個寬度,如圖:

0141

(3)試着移動面板到窗體中央,它會又跳回頂端。

(4)試着把面板寬度變短,它仍保持原來的寬度。

(5)改變面板的高度,面板的高度可以改變。

(6)改變Align屬性為alBottom,面板粘貼到窗體的底端。如圖:

0142

(7)改變Align屬性為alRight,然后設置為alLeft,面板的寬度可改變,面板的高度無法改變。如圖:

0144 0143

(8)改變Align屬性為alClient,面板擴張充滿這個客戶區,不能再任意方向改變其大小。如圖:

0145

(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對話框提供了更容易的辦法。如下圖:

0146

從主菜單選擇【Edit | Tab Order…】打開Edit Tab Order對話框,它顯示當前窗體上的所有窗口組件,不顯示非窗口組件。要改變Tab順序,在順序列表中點擊要移動的組件名稱,然后通過上下按鈕改變順序,最后點擊OK來設置完成,通過瀏覽每個控件的TabOrder屬性確認新設置。

Note

Tab Order從0開始,第一個組件在Tab順序中為0,第二個為1等等。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM