在任何一个应用系统中,如果要实现人机交流,基本上都是通....doc_第1页
在任何一个应用系统中,如果要实现人机交流,基本上都是通....doc_第2页
在任何一个应用系统中,如果要实现人机交流,基本上都是通....doc_第3页
在任何一个应用系统中,如果要实现人机交流,基本上都是通....doc_第4页
在任何一个应用系统中,如果要实现人机交流,基本上都是通....doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章窗体设计技法在任何一个应用系统中,如果要实现人机交流,基本上都是通过界面来实现的。本章将主要介绍窗体设计及应用的各种技法。1.1 窗体的功能分类窗体是目前管理系统中应用最为广泛的一种人机交流方式,通过窗体可以查询需要的数据,录入相应的信息,还可以实现对系统进行设置。例如,我们常用的Word就是一个用于编辑文档的窗体,不仅可以实现编辑文档,而且可以对文档的格式进行设置和修改,这些功能都是通过窗体来实现的。根据窗体在实际中的应用,按其功能可简略分为3类:主窗体、文档编辑类窗体和对话框类窗体。 主窗体主要用于管理其他窗体,如通过菜单栏或工具栏中的命令来打开其他窗体。对于一个工程来说,主窗体就是这个工程的主要管理部分。 文档编辑类窗体主要用于编辑文档。 对话框类窗体在这里是指所有通过文本框进行录入,以及通过其他控件进行设置的窗体,这是一个笼统的说法,也可以说包括了所有可实现人机对话的窗体。我们在这一节对窗体进行分类,是为了便于对其技法的整理和介绍。本章主要介绍工程及窗体的创建和设置技法以及窗体的打开与关闭技法。对窗体的功能实现将在后面的章节介绍。1.2 主窗体的创建技法在开发的管理系统中,多数情况下都有一个主窗体用来管理系统内的各个界面。这里把主窗体的创建技法分为两种情况来介绍:一种是常规主窗体的创建,另一种是多文档主窗体(MDI)的创建。1.2.1 常规主窗体的创建技法这里说的常规主窗体是在管理系统中较为常用的一种窗体,只用于调用系统内各个窗体。这类主窗体可使用两种技法进行创建,一种是通过自定义的方法创建,另一种是通过向导的方法进行创建。1自定义创建技法自定义创建主窗体法是指根据应用程序的需要,手动向窗体中添加各种组件,如菜单组件、工具栏组件、状态栏组件等。我们通过一个实例来说明此种技法的使用方法,图1-1为该实例的设计图。【技法要求】向窗体中手动添加组件(如菜单、工具栏等组件),根据自己的需要来设计主窗体的布局和颜色。下面将简单介绍一下一般主窗体的设计步骤及方法。 启动Delphi后,通常都有一个默认的应用程序窗体,我们也可以执行FileNewApplication命令创建应用程序。 设置主窗体标题。即窗体Form1的Caption属性值,如“图书信息管理系统”。 设置主窗体图标。单击窗体Form1的属性Icon行的按钮,弹出Picture Editor对话框,如图1-2所示,在该对话框中可加载窗体Form1所需要的图标。 图1-1图1-2 通过Form1的Color属性可设置窗体的背景色,WindowState属性可设置系统启动的主窗体的初始状态,例如设置wsMaximized,则在系统启动后主窗体处于最大状态。 向Form1窗体中添加菜单组件MainMenu,并根据需要设置菜单项,菜单项的设置和使用方法请参考第3.2节的内容。 向窗体Form1中添加工具栏组件ToolBar,并根据需要添加按钮,工具栏中按钮的添加与设置方法请参考第3.3节的内容。 主窗体设置完成后,可以在工具栏中单击按钮来添加其他窗体。 保存应用程序,其工程文件的格式为dpr,单元文件的格式为pas。读者可以根据自己的爱好进一步美化主窗体,如设置背景图片、文字字幕(可参考第6章)等,还可以在标题栏中动态改变标题以动态显示时间。例如,如果要在图1-1中动态显示系统时间,可在窗体Form1中添加定时器组件Timer,并通过OnTimer事件来实现,其代码如下。procedure TForm1.Timer1Timer(Sender: TObject);begin form1.Caption:=图书信息管理系统+ 现在是:+timetostr(time);end;读者还可以通过许多方法来美化主窗体,上面的代码仅供参考,这里就不再一一介绍。2使用向导创建技法使用向导法创建应用程序主窗体是一种较为快捷的方法,可根据不同的需要通过向导界面定制菜单。下面通过一个小实例来说明使用向导创建主窗体的方法,图1-3为该实例设计图。【技法要求】使用向导创建主窗体。下面是使用向导创建主窗体的一般步骤。 在Delphi界面中执行FileNewOther命令或在工具栏中单击按钮,打开New Items窗口,并切换到Projects选项卡,如图1-4所示。 图1-3图1-4 在Projects选项卡中选择Application Wizard项,并单击OK按钮,弹出Application Wizard窗口,如图1-5所示,在该窗口中可设置主窗体所需要的系统菜单项。 在图1-5中选择菜单项后,如果选择File menu项,则单击Next按钮后,进入打开与保存对话框中默认文件格式设置窗口,如图1-6所示。在该窗口中单击Add按钮后,弹出文件扩展名设置对话框,在Desciption文本框中设置文件扩展名描述信息,在Extension(s)文本框中设置扩展名,然后单击OK按钮。 在图1-6中设置完成后,单击Next按钮进入工具栏按钮设置窗口,如图1-7所示。如果在图1-5中不选择File menu项,可直接进入此窗口。在该窗口中的菜单列表中选择需要向工具栏中添加的菜单项,然后单击Insert按钮即可。图1-5图1-6图1-7如果要删除按钮可在工具栏预览框中选择相应的按钮,然后单击Remove按钮。若单击Space按钮则添加分隔线。 在图1-7中单击Next按钮进入存储路径及其他项设置窗口,如图1-8所示,在该窗口中的第一个文本框中可设置应用程序的名称,单击Browse按钮设置应用程序保存的路径。如果选择Create MDI application复选框则为多文档应用程序;如果选择Create a status line复选框则在主窗体中添加状态栏;如果选择Enable hints复选框则显示相应的提示。图1-8 单击Finish按钮即可保存应用程序,并显示自动生成的界面,如图1-3所示。从图1-3中可了解到,使用向导创建法生成的主窗体多数用于创建文档型应用程序的主窗体,如果我们开发的是某个管理系统,则多数使用自定义法创建主窗体。1.2.2 MDI主窗体的创建技法MDI主窗体与常规主窗体的区别是窗体的风格不同,在常规主窗体中打开的其他窗体单独存在,而在MDI主窗体中打开的其他窗体则显示在MDI主窗体的内部,MDI主窗体就像一个容器用于存放其他窗体。本小节将主要介绍创建MDI主窗体的各种技法。1自定义创建技法自定义创建MDI主窗体主要体现在对主窗体的属性设置,而它的创建方法与常规主窗体的创建方法基本相同。因此我们在图1-1的基础上来介绍自定义MDI主窗体的创建技法,下面是修改的方法及MDI窗体运行后的效果。 打开图1-1的应用程序,设置主窗体Form1的FormStyle属性为fsMDIForm。 创建一子窗体。单击按钮添加一窗体Form2,如图1-9所示,其属性FormStyle设置为fsMDIChild,其他属性请读者自己设置。 运行程序后,Form2窗体只能在Form1窗体内部移动,图1-10为MDI主窗体的效果。MDI主窗体中打开与关闭其子窗体的功能实现代码与常规窗体有些不同,其功能具体实现请参考1.4节的内容。 图1-9图1-102使用模板创建MDI窗体技法使用模板创建的MDI应用程序采用了系统默认的菜单和工具栏,在创建后还需要根据我们应用的实际情况进行修改。而且使用模板创建的MDI应用程序还提供部分功能,如新建、保存等功能。下面简单介绍一下使用模板创建MDI应用程序的一般步骤。 在工具栏中单击按钮打开New Items窗口,并切换到Projects选项卡,如图1-4所示。 在该选项卡中选择MDI Application项,并单击OK按钮,弹出存放路径设置对话框,如图1-11所示。 路径设置完成后,单击OK按钮即可创建MDI应用程序,其最终界面如图1-12所示。下一步就可以使用用模板创建的MDI应用程序,然后再根据需要对菜单及其工具栏进行修改。这里我们重点看一下图1-12中新建和打开功能实现的代码,对我们自定义创建MDI应用程序时非常有帮助。我们先看一下新建功能实现的代码,它通过自定义CreateMDIChild过程来创建子窗体,而新建命令只调用定义的过程即可,请看下面的代码。 图1-11图1-12procedure TMainForm.CreateMDIChild(const Name: string);var Child: TMDIChild;begin create a new MDI child window Child := TMDIChild.Create(Application); /新建子窗体 Child.Caption := Name; /定义子窗体名称 if FileExists(Name) then /实现打开文件Child.Memo1.Lines.LoadFromFile(Name);end;procedure TMainForm.FileNew1Execute(Sender: TObject);begin /调用新建子窗体过程,并返回子窗体名称 CreateMDIChild(NONAME + IntToStr(MDIChildCount + 1);end;在图1-12中,打开功能实现的代码如下。procedure TMainForm.FileOpen1Execute(Sender: TObject);begin if OpenDialog.Execute then /选择并打开文件 CreateMDIChild(OpenDialog.FileName);end;1.2.3 应用程序设置在开发应用程序中,可以根据需要来重新设置应用程序的主窗体以及应用程序的标题、图标和版本信息等。1定义主窗体及不可用窗体对创建的应用程序,可以根据需要修改其主窗体,下面以图1-10为例来介绍如何重新定义应用程序的主窗体。执行ProjectOptions命令,打开Project Options对话框,并切换到Forms选项卡,如图1-13所示。在Forms选项卡的Main form下拉列表框中可重新选择应用程序的主窗体。在Auto-create forms列表中显示了当前应用程序的所有可用窗体,在Available forms列表中当前应用程序中不可用的窗体。图1-13对于常规的应用程序,在运行程序后只显示主窗体而不会显示其他窗体。对于MDI应用程序除了主窗体外,还包括所有可用的子窗体,因此如果不想在运行程序后显示MDI应用程序的子窗体,把它添加到Auto-create forms列表即可,如Form2。2设置应用程序图标及标题在开发应用程序时,通常都要为应用程序设置一个图标及标题,图标是可执行文件的图标,标题则是显示在操作系统任务栏中。在图1-13中切换到Application选项卡,如图1-14所示。在Title文本框中输入当前应用程序的标题,单击Load Icon按钮则可为应用程序选择适当的图标。3设置版本信息对一个应用程序的版本信息可在Project Options对话框的Version Info选项卡中进行设置,如图1-15所示。对图中各项这里就不再详细说明,若有兴趣可参考其他相关书籍。 图1-14图1-151.3 其他窗体的创建技法除了主窗体外,还需要许多其他窗体,以便使应用程序实现人机交互。本节将简单介绍这类窗体的各种创建技法。1.3.1 子窗体的创建技法这里的子窗体是指除主窗体之外的其他窗体,这些窗体的创建多数都可使用模板和自定义两种技法来实现,如普通对话框类窗体等。 1使用模板创建子窗体使用模板创建子窗体较为方便,有些模板还提供实现某些功能的代码,我们只要稍作修改即可使用,请看下面一个小实例,该实例是使用模板创建一个列表选择的对话框,其实现步骤如下。 在Delphi的工具栏中单击按钮,打开New Items对话框并切换到Forms选项卡,如图1-16所示。 选择Dual list box项,并单击OK按钮即可创建窗体,如图1-17所示。 修改窗体的Caption属性值为“列表选择对话框”,并分别修改两个Label组件的Caption属性为“源列表”和“目标列表”。 图1-16图1-17 选择左边列表框,并在属性面板中选择Items属性,并单击其按钮,弹出String List Editor对话框,在该对话框中可修改该列表中显示的数据,然后单击OK按钮即可,修改后数据如图1-18所示。 在图1-17中的“”、“”和“”4个按钮功能实现的代码在模板中已经提供,因此我们只需要修改左边列表中数据即可使用。图1-19为该实例运行后的效果。 图1-18图1-19如果使用“目标列表”中的数据,还需要对OK按钮实现的功能编辑代码,这不属于本章的内容,请读者根据所使用的环境参考第2章的相关内容。除了在Forms选项卡中图1-19所示的窗体创建外,还提供了About box窗体和Tabbed pages窗体。在Dialogs选项卡中提供各种对话框窗体的模板,这些模板在使用时需要添加相应组件及其功能实现的代码。请读者自己尝试着创建,这里就不再一一说明。2自定义法创建子窗体自定义创建子窗体是指在一个空白窗体中根据需要添加组件,这种技法应用灵活,可设计出极具个性的窗体。下面通过一个小实例来说明自定义创建窗体的方法,该实例是用户设置密码的界面,图1-20为该实例的设计图。图1-20下面是该实例中子窗体创建的一般步骤。 在当前应用程序中单击工具栏中的按钮,创建窗体Form2,设置其Caption属性为“密码设置”,BorderStyle为bsDialog,Color为clSkyBlue,Position为poScreenCenter,并调整窗体的宽和高。 在Form2窗体中添加Panel组件,并放置到适当的位置,并调整其宽和高,设置其属性BevelInner和BevelOuter都为bvLowered,Color为clGradientActiveCaption。 在Panel组件中添加3个Label组件,其Caption属性值如图1-20中所示。 在Panel组件中添加3个Edit组件,其中Edit2和Edit3的PasswordChar属性值设置为*。 在Form2窗体中添加两个Button组件,其中Button1组件的Caption属性设置为“确定”,Button2组件的Caption属性设置为“取消”。 密码设置窗体界面设计已经完成,随后就编辑其他功能实现的代码,请读者参考第2章相关内容,来完成代码编辑,这里就不再详细介绍了。使用自定义法创建窗体,无非是在一个空白的窗体中添加各种需要的组件,再设置其属性以达到美化界面的目的。1.3.2 使用向导创建数据浏览窗体在管理系统中,数据窗体也是最为常用的一种界面,它主要用于管理和浏览数据表中的数据。数据窗体可通过自定义和向导两种技法来实现,其中自定义创建窗体也是向空白窗体中添加组件,这里就不再介绍了。本节将重点介绍如何使用向导创建数据浏览窗体,下面是使用向导创建数据浏览窗体的一般步骤。 在当前应用程序中,执行DatabaseForm Wizard命令,打开Database Form Wizard对话框,如图1-21所示,在该对话框中的Form Options组中选择创建窗体的样式,在DataSet Opeions组件中选择在数据窗体中使用的数据组件。图1-21 设置完成后,单击Next按钮进入数据表选择界面,如图1-22所示,在该界面中可选择需要的数据表应用在窗体中。图1-22 数据表设置完成后,单击Next按钮,进入字段设置界面,如图1-23所示,在该界面中可设置将在窗体中显示的字段。图1-23 单击图1-23中的Next按钮,进入字段在窗体中的布局设置界面,如图1-24所示,在该界面中提供了三种字段布局方式,其中Horizontally表示字段在窗体中水平对齐放置,Vertically表示字段在窗体中垂直对齐放置,In a grid表示字段数据通过表格显示。图1-24 字段布局方式设置完成后,单击Next按钮进入标签位置设置界面,如图1-25所示,在该界面中Left表示标签放置在文本框的左边,Top表示标签放置在文本框的右边。图1-25 窗体布局设置完成后,单击Next按钮进入数据窗体向导完成界面,如图1-26所示,在该界面中如果选择Generate a main form复选框,则产生的窗体将作为当前应用程序的主窗体,如果选择Form and DataModule项,将产生一个窗体和一个数据模块,本例选择如图1-26中所示。图1-26 在图1-26中单击Finish按钮,将生成如图1-27所示的窗体,该窗体中的组件放置有些凌乱,我们需要重新调整各组件的位置,并修改该窗体及其组件的属性。图1-27 修改Form2的Caption属性值为“数据浏览窗口”,并重新调整各组件的位置,然后运行程序并测试其效果,如图1-28所示。图1-28使用向导创建数据窗体,多数用于简单的数据浏览,而且界面样式固定,对于较为复杂的数据浏览就不太适合。因此建议读者自己动手设计窗体,既可增强自己的熟练程度,也可设计出有特色的界面。1.4 窗体的打开与关闭技法窗体的打开与关闭可分为两种情况:一种是可用窗体的打开与关闭,另一种是不可用窗体的打开与关闭。在图1-13中左边列表中的窗体为当前应用程序的可用窗体,右边列表中的窗体为当前窗体中的不可用窗体,本节将介绍这两种情况的窗体打开与关闭的技法。1.4.1 可用窗体的打开与关闭当应用程序运行时,其他看不到的可用窗体其实并没有真正关闭,只是以某种

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论