用户界面设计(4)- 窗体的控制

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:垂直居中}

 

posted @ 2020-04-24 03:48  范思哲  阅读(530)  评论(0编辑  收藏  举报