用户界面设计(1)- 窗体的分类

1、数据模块窗体

数据模块窗体是为了管理程序中的数据组件而定义的一个共用窗体类。一般情况下该窗体会放置数据库连接组件(数据表控制组件,连接组件)。

如果将数据模块窗体看成是一个封装了数据库操作得一个数据库类得话,只需要在这个数据模块窗体上防止几个数据组件,其他窗体使用这几个数据组件

就可以减少资源的浪费和重复得数据操作。还可以将一些常用的数据库操作以函数或过程得形式定义在数据模块中,这样就和单独在一个公共单元种定义数据库操作一样。

数据模块窗体通常是第一个被创建的窗体,这是由于登录窗体要在第一时间显示给用户,而登陆窗体又要从数据库读取数据,所以数据模块窗体是最先被创建得。

 创建步骤:创建一个新的工程,File-->New-->Data Module命令

 

2、MDI窗体(多文档窗体)

MDI窗体时多个子窗体显示在一个主窗体中,通常被称为多文档窗体。

多个窗体可以同时在一个容器中显示并处理,这样有利于窗体得布局,比如可以在窗体得左侧显示功能导航,右侧显示具体得功能,目前办公类软件大部分如此。

 

 

 

//form1
var
Form1: TForm1; implementation uses Unit2; {$R *.dfm} {属性设置:form1窗体的formstyle设置为fsMDIform,form2设置为fsMDIChild,} procedure TForm1.btn2Click(Sender: TObject); begin MDIChildren[0].WindowState:= wsMinimized;//最小化,使用MDIChildren[integer]来存储所有子窗体 end; procedure TForm1.btn3Click(Sender: TObject); begin MDIChildren[0].WindowState:= wsMaximized; end; procedure TForm1.btn4Click(Sender: TObject); begin MDIChildren[0].Close; MDIChildren[0].Release;//关闭MDI子窗体 end; procedure TForm1.btn5Click(Sender: TObject); begin ShowMessage(IntToStr(MDIChildCount));//查看MDI子窗体数量 end;
//form2
procedure TForm2.FormCreate(Sender: TObject);
begin
  Self.Height:= Form1.ClientHeight;
  Self.Width:= Form1.Width;//设置子窗体的宽度高低
  Self.Align:= alClient;
end;

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action:= caFree; //关闭窗体
end;

 

3、工具窗体

工具窗体一般是由工具栏组成的窗体,可以任意摆放位置,并且可以嵌入到其他窗体中。

工具窗体分为两种,可改变大小和不可改变大小的工具窗体,工具窗体和普通的窗体没有大的分别,这是工具窗体只有一个关闭按钮,普通窗体也可以向工具窗体那样使用

最明显的感受,QQ截图是按照窗口来截取,截取时下图时一个单独的窗体。

 

4、LOGO窗体

LOGO窗体就是封面窗体,主要对软件得风格功能,以设计处具有独特风格和意义得封面。

创建步骤:

(1)先建立一个新的工程,File-->New-->Form创建一个新的窗体,设置窗体的name属性为Frm_LOGO,设置窗体得BorderStyle属性为bsNone。

(2)窗体上放置一个TImage组件,设置picture属性加载设计好得LOGO图片,设置Align属性为alClient,将图片铺满整个窗体。

(3)选择Project-->Options,在打开的工程属性对话框中将Frm_LOGO窗体从窗体自动创建列表中排除。

 添加以下代码:

Ctrl+F12打开窗体选择工程单元Project2.

program Project2;

uses
  Forms,
  SysUtils,//要引用此单元,否则Sleep函数无法使用。
  Unit1 in 'Unit1.pas' {Form1},
  Unit2 in 'Unit2.pas' {Frm_LOGO};

{$R *.res}

begin
  Application.Initialize;
  Frm_LOGO := TFrm_LOGO.Create(nil);
  Frm_LOGO.Show;
  Frm_LOGO.Update;
  Sleep(2000);
  Frm_LOGO.Close;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.

 

posted @ 2020-04-23 19:34  范思哲  阅读(904)  评论(0编辑  收藏  举报