使用者介面設計(3)- 窗體的控制
阿新 • • 發佈:2020-04-24
1、限制窗體的大小
在設計窗體介面時有時會想讓窗體的大小隻限於一定的範圍內,窗體的constraints屬性可以用於控制窗體的大小。
該屬性本身是一個類的物件,這個類主要由四個屬性組成。
示例:
begin Self.Constraints.MinWidth:= 400; Self.Constraints.MinHeight:= 300; Self.Constraints.MaxWidth:= 800; Self.Constraints.MaxHeight:= 600; with Self.Constraints do begin MinWidth:= 400; MinHeight:= 300;//窗體的高度寬度最小值控制 MaxWidth:= 800; MaxHeight:= 600;//最大值控制 end; end;
2、窗體的動態建立
我們一般建立新的工程時就會同時建立窗體,一般來說天新增新的窗體時我們不用考慮窗體是如何建立的,不過有時候滿足不了程式設計的需求,此時就需要動態建立窗體。
var Frm:Tform; Mo:Tmemo; begin Frm:=Tform.Create(application); Frm.Width:=800; Frm.Height:=500;//動態建立窗體 Frm.Caption:= ‘動態建立的窗體標題‘; mo:=Tmemo.Create(frm); mo.Align:=alClient; mo.ScrollBars:=ssVertical; mo.Parent:=frm; frm.Position:=poScreenCenter;//窗體的POsition屬性可以指定窗體位置 {Poistion取值:poScreenCenter:螢幕中央、poDesktopCenter:桌面中央、poMainFormCenter:工程主窗體中央、poDesigned:設計時的位置顯示} frm.ShowModal; freeandnil(frm); end;
3、窗體關閉時顯示提示窗體
很多時候在程式主窗體關閉時都會有提示框,這個提示框會提示是否關閉程式或是備份資料之類的。我們就可以根據Action 引數來判斷使用者的操作。
先看下窗體的onClose事件定義:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); TCloseEvent = procedure(Sender: TObject; var Action: TCloseAction) of object; TCloseAction = (caNone,caHide,caFree,caMinimize);
示例:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin if Application.MessageBox(‘是否要關閉程式‘,‘程式關閉提示‘,MB_OKCANCEL + MB_ICONINFORMATION) = IDOK then begin Action:= caFree; end else Action:= caNone; end;
4、窗體被關閉前觸發OnCloseQuery事件
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin {可以看出引數CanClose是個布林值,為true時允許窗體被關閉,反之不允許。 可以參考上面的例子使用對話方塊來判斷是否允許關閉。} Button1.Free; end;
5、窗體之間的引用
使用Alt+F11可開啟選擇單元對話方塊
6、多窗體間的資料傳遞
多窗體間的資料傳遞是指窗體的元件或變數的傳遞,主要有兩種方法:
(1)通過窗體類進行資料傳遞:
uses Unit2;//引用 begin Form1.Edit1.Text:= Form2.Edit1.Text;通過窗體類 end;
(2)通過在本單元定義全域性變數進行資料傳遞:
var Form1: TForm1; Name: string;//本單元定義好全域性變數後,其他單元引用本單元后就可以訪問該變數。
7、元件的鎖定
當窗體設計完成後,以防誤操作,可以將窗體上的元件位置鎖定不變,Edit-->Lock Controls命令。再次操作解鎖。
8、元件的對齊
edit-->Align命令,開啟Alignment對話方塊,如下“
{水平選項: 垂直選項: No change:沒有任何改變 No change:沒有任何改變 Left sides:左側對齊 Tops:頂端對齊 Centers:居中對齊 Centers:居中對齊 Right sides:右側對齊 Bottoms:底端對齊 Space equally:空格間距相等 Space equally:空格間距相等 Center in window:水平居中 Center in window:垂直居中}