Download - 第 3 章 图形界面设计与项目管理
第 3 章 图形界面设计与项目管理本章要点
3.1 菜单的设计
3.2 工具栏的设计
3.3 状态栏的设计
3.4 按钮及面板的设计
3.5 文本对象的设计
3.6 有关窗体的操作
3.7 有关代码编辑器的使用
3.8 项目管理
本章要点
详细介绍了菜单栏、工具栏和状态栏的属性及其设计方法。
描述了按钮、位图按钮控件的属性以及如何激活动作,发出命令。
介绍了容器型控件如面板、框架、状态面板、酷工具栏的使用方法。
返回本章首页
通过大量实例阐明了文本对象常用控件的属性、方法。并将常用的文本处理过程与函数集中讲解。
进一步阐明了代码编辑器的使用,包括代码编辑器的一些重要功能。
解释了项目的概念,以及如何使用项目管理器。
返回本章首页
3.1 菜单的设计
3.1.1 菜单界面
3.1.2 主菜单设计
3.1.3 弹出型菜单设计
返回本章首页
3.1.1 菜单界面
菜单命令被选中后,一般来说有以下三种作用:
用于执行某种应用程序的操作。
用于设置某特殊选项的状态,这些命令常用复选标记“”或单选标记“”来表明该选项是否处于有效状态。
用于打开对话框,具体操作在对话框中进行。
图 3-1 Word XP 中文版“插入”菜单
返回本节
3.1.2 主菜单设计
1 、 MainMenu 控件的设计
用鼠标右键单击 MainMenu 控件图标,打开一个弹出式菜单,从中选择 MenuDesigner 命令。
先在窗体中单击 MainMenu 控件图标,然后在对象监视器中单击 Items 属性编辑框右边的省略号按钮。打开后的主菜单设计器窗口如图 3-2 所示。
鼠标双击窗体中的 MainMenu 控件图标。
图 3-2 主菜单设计器窗口
2.菜单设计方法
( 1 )增加菜单项(如图 3-3 所示)
( 2 )编辑菜单项
( 3 )插入菜单项(如图 3-4 所示)
( 4 )删除菜单项
( 5 )增加分隔条(如图 3-5 所示)
( 6 )定义加速键和快捷键(如图 3-6 、 3-7 所示)
( 7 )调整菜单位置(见图 3-8 )
( 8 )创建子菜单
( 9 )菜单模板(如图 3-9 所示)
图 3-3 设置中的“文件”菜单
图 3-4 插入菜单项窗口
图 3-5 设计了分隔条的“文件”菜单
图 3-6 “ 文件”菜单示例
图 3-7 加速键设计图
图 3-8 菜单设计器的弹出式菜单
图 3-9 菜单模板窗口
图 3-10 保存模板对话框
返回本节
3.1.3 弹出型菜单设计
选 中 Form 对 象 后 转 换 到 属 性 页 , 并 单击“ PopupMenu” 右边的空白框,选中设计完的弹出型菜单名称,最后运行程序即可如图所示。
图 3-11 激活的弹出式菜单
返回本节
3.2 工具栏的设计
( 1 )启动新窗口
( 2 )添加按钮(如图 3-12 所示)
( 3 )为按钮提供位图(如图 3-13~15 所示)
( 4 )为各个按钮添加提示信息
( 5 )分别为有关工具按钮添加有关事件代码。
返回本章首页
图 3-12 工具栏设计菜单
图 3-13 选择图像窗口
图 3-14 设置 Images 特性
图 3-15 添加完图标的工具栏
返回本节
3.3 状态栏的设计
( 1 )单击 Win32 页中的 StatusBar 状态栏控件见图 3
-16
( 2 )双击状态栏的 Panels 属性,并从中选择“ Panels Editor” 命令即可,如图 3-17 所示。
( 3 )单击窗口中的“ New” 按钮,就会增加一个子面板。
( 4 )在对象监视器中设置子面板的属性。
( 5 )关闭 Editing StatusBar1.Panels 窗口。
返回本章首页
图 3-16 具有状态栏的窗口
图 3-17 Editing StatusBar1.Panels 窗口
返回本节
3.4 按钮及面板的设计
3.4.1 基本命令按钮
3.4.2 位图命令按钮
3.4.3 单选按钮
3.4.4 分组框
3.4.5 单选按钮组
3.4.6 面板
3.4.7 框架
3.4.8 状态面板
3.4.9 酷工具栏控件
返回本章首页
3.4.1 基本命令按钮
属性 数据类型 说明
Name String 按钮的名称,编写程序代码时使用它
Caption String 按钮的标题,就是按钮上显示的文字。可以为按钮指定快捷键
Cancle
Boolean
缺省值为 False ,当取值为 True 时,无论何时按下Esc 键,按钮中 Taborder 值最小的按钮会产生Onclick 事件
Default
Boolean
当属性值为 True 时,按下 Enter 键,当前按钮产生Onclick 事件,缺省值为 True
Hint String 按钮的提示文本保存在这里,当鼠标光标停留时,显示提示文本
Showhint Boolean 确定是否显示提示文本,缺省值为 False
表 3-1 按钮的主要属性
返回本节
3.4.2 位图命令按钮
属性 数据类型 说明
KindGlyphLayout
Margin
NumGlyphsSpace
TBitBtnKindTBitmapTbuttonlayout
Integer
TNumGlyphsTbuttonstyle
用于确定按钮的类型,缺省值为自定义型 bkcustom用于指定要显示在位图按钮上的位图决 定 位 图 按 钮 上 图 像 和 文 字 的 位 置 , 有Left , Right , Top , Bottom 四个值分别表示位图位于位图按钮的左、右、上、下用于设定图像与按钮的边界之间的距离(以像素为单位),默认值为- 1 ,表示图像和文字总是居中,设为 0 表示紧挨着按钮的边界指定位图按钮使用的位图的数目,只能为 1 , 2 , 3, 4确定位图按钮的外观显示方式,缺省为 bsautodetect
表 3-2 位图按钮的属性
表 3-3 各按钮属性属性 Butto
n1Butto
n2BitBtn
1BitBti
n2BitBt
n1BitBt
n2
Caption Button1
Button2
对话框 &Close
Ok Cancel
Kind bkCustom
bkClose
bkOk bkCancel
Cancel False True False False False False
Default True False False False False False
ModalResult
mrNone
mrNone
mrNone
mrNone
mrOk mrCancel
属性 说明
Cancel该属性值为 True 时 , 则无论用户何时按 Esc 键 , 都会执行该按钮的 OnClick 事件。如果同一个窗体上具有多个这样的按钮 , 则会执行 TabOrder 值最小的按钮的 OnClick 事件
Default这个属性和 Cancel 属性相似。当用户按下 Enter 键时,将执行该按钮的 OnClick 事件。但有一个例外,如果当前拥有输入焦点的控件为另一个按钮时,按 Enter 键时则只执行当前按钮的 OnClick事件
Kind这个属性为位图按钮所特有,选择 Kind 属性的某个选项,用于决定该位图按钮的种类每一种位图按钮具有自己独特的功能。位图按钮常用于各种对话框或模态窗口中,根据按钮的 ModalResult属性值来决定对模态窗口的操作
ModalResult模态值。当单击位图按钮时,将把对话框的模态值设为相同的值。它将决定位图按钮的父窗体的关闭方式。如单击 mbOk 按钮 , 将关闭对话框,返回 mrOk 值
表 3-4 各按钮属性说明
返回本节
3.4.3 单选按钮
图 3-22 单选按钮实例
属性 数据类型
说明
Alignment
TleftRight
用 于 设 置 单 选 框 的 文 字 与 小 圆 圈 的 位 置 关系, taLeftJustify 表示文字显示在小圆圈的左边;taRightJustify 表示文字显示在小圆圈的右边
Checked Boolean 这个属性用于设置选项是否被选中,当值为 True时,表示选中;当值为 False 时,表示未选中
表 3-5 单选按钮属性
返回本节
3.4.4 分组框
图3-23
分组框示例
返回本节
3.4.5 单选按钮组
图 3-24 单选按钮组示例
表 3-6 单选按钮组的常用属性
属性 数据类型 说明
Columns Longint 用于设置单选按钮组中的栏数,默认值为 1 ,最大可设为 16
ItemIndex Integer 用于返回单选按钮组中被选择的项的序号,第一项为 0
Iterms Tstring 在设计期,可以在编辑器中输入每个单选框的标题,在运行期,可以通过 Tstrings 对象来操纵 Iterms 特性
返回本节
3.4.6 面板
表 3-7 面板控件的常用属性 (1)
属性 数据类型 说明
Align TAlign 用于设置面板控件在窗体中的放置位置
BevelInner
TbevelCut
用于设置面板的内部斜面样式,可以设为以下值: bvNone (没有斜面), bvLowered (沉降的斜面), bvRiased (升起的斜面)BevelOuter TBevelC
ut用于设置面板的外斜面形式
BevelWidth Integer 面板的斜面宽度
BorderStyle TBorderStyle
面板的边框样式
BorderWidth Integer 面板的边框宽度
Caption string 用于设置面板控件使用的标题
ControlCount
Integer 用于设置面板中的子控件数目
Controls TControl 用于设置面板中的控件数目
Enabled Boolean 用于设置面板中的所有子控件是允许还是被禁用
Handle HWnd 代表面板的窗口句柄
表 3-7 面板控件的常用属性 (2)
返回本节
3.4.7 框架
1.创建框架(图 3-25 表 3-8 )
2.框架的共享
( 1 )添加框架到控件板上(如图 3-27 、 3-28 所示)
( 2 )添加框架到对象库中(如图 3-29 、 3-30 所示)
3.框架的使用(如图 3-31~33所示)
图 3-25 新建的框架
表 3-8 框架的属性
属性 属性值
NameFontHeightWidth
MFrane华彩、五号160190
图 3-27 “Component Template Information” 对话框
图 3-28 新添加的框架图标
图 3-29 “Add to Repository” 对话框
图 3-30 添加了框架的对象库
图 3-31 确认添加单元文件对话框
图 3-32 添加了框架的窗体
图 3-33 Select Frame to Insert 对话框
返回本节
3.4.8 状态面板
Bevel 控件的常用属性如下:
Shape :数据类型为 TBevelShape ,用于定义形状。可供选择的值如表 3-10 所示。
Style :数据类型为 TBevelStyle ,用于确定斜面是否凹陷或凸起。当选择 bsLowered 值时,斜面凹陷;当选择 bsRaised 值时,斜面凸起。如图 3-34 所示。
值 含义
bsBox 矩形框,根据 Style 属性决定客户区域的凹陷与凸起
bsFrame 矩形轮廓,客户区域由凹陷与凸起的轮廓包围
bsTopLine 在客户区域的上边显示一条线
bsBottomLine 在客户区域的下边显示一条线
bsLeftLine 在客户区域的左边显示一条线
bsRightLine 在客户区域的右边显示一条线
bsSpacer 客户区域为空
表 3-10 Shape 取值
图 3-34 状态面板中 Style 属性的不同取值
返回本节
3.4.9 酷工具栏控件
表 3-11 TCoolbar 控件的属性
属性 数据类型 说明
Align TAlign 用于设置 TCoolBar 控件建立的工具栏的位置
AutoSize Boolean 用于对工具栏的尺寸的自动调节
BandBorderStyle
TBorderStyle 用于设置工具栏上波段的边框风格
Bands TCoolBands 用于编辑波段
Bitmap TBitmap 用于指定一个位图,作为背景显示在工具栏上
FixedOrder Boolean 当设为 True ,段可以进行拖曳,但段的顺序不变
FixedSize Boolean 用于尺寸设置
Image TImageList 用于指定一个图像列表,显示在每个段的左边
ShowText
Boolean
如果该特性设置为 True ,可以在运行期间把一个字符显示在段上,字符串由段的 Text 特性指定。如果该特性设置为 False ,段只能显示窗口
类控制Vertical Boolean 如果该特性设置为 True ,工具栏的段本身是垂
直的,多个段从左到右排列。如果 Vertical 为False ,工具栏的本身是水平的,多个段从上到
下排列
返回本节
3.5 文本对象的设计
3.5.1 标签
3.5.2 静态文本
3.5.3 编辑框
3.5.4 掩码编辑框
3.5.5 列表框
3.5.6 组合框
3.5.7 多行文本编辑器
3.5.8 复选框
3.5.9
常用文本处理过程和函数
返回本章首页
3.5.1 标签
标签的常见属性如下:
Caption :用于设置标签的标题,即标签的显示内容。
FocusControl :该属性为标签控件独有,可以用来为一些无标题的控件提供快捷键。
Autosize :用于决定标签是否随字体的变化而自动变动尺寸以配合这些变化。
Font :用于设置标签文字的字体格式和大小。
返回本节
3.5.2 静态文本
静态文本控件( Static Text )与标签控件基本相同,唯一不同之处在于静态文本控件是窗口型控件,具有窗口句柄。因此,当控件的快捷键必须属于窗口型控件的时候,应该使用静态文本控件,而不能使用标签控件。
静态文本控件位于控件板的 Additional 选项页上,操作方法与标签相同。
返回本节
3.5.3 编辑框
编辑框的常用属性有:
AutoSelect 、 AutoSize 、 BorderStyle 、 Text
MaxLength 、 PasswordChar 、 ReadOnly
IMEMode 、 IMEName 。
编辑框控件的常用事件如下:
OnKeyPress 事件的功能:在编辑框输入完文本后,按一下 Enter 键,程序就开始执行。
编辑框的文本发生改变时触发 OnChange 事件。
编辑框获得输入焦点时触发 OnEnter 事件。
编辑框失去输入焦点时触发 OnExit 事件。
返回本节
3.5.4 掩码编辑框
在窗体上将MaskEdit 选中,在对象监视器中找到EditMask 属性,双击它,弹出一个如图 3-36 所示的对话框。掩码格式可以分为三部分:
( 1 )输入格式的第一部分是掩码本身,也就是数据输入格式 ( 如表 3-12 所示 ) 。
( 2 )在输入格式中的第二部分只有 0 和 1两种选择
( 3 )输入格式的第三部分用于表示数据中的空位用那个字符代替显示。
图 3-36 输入掩码编辑器
表 3-12 输入格式符 (1)
格式符 意义
l 和 L l 表示该位置只可能是一个字母,可以用光标键跳过它,但是不能是其他类型的字符。 L 该位置必须是一个字符
a 和 A a 表示该位置只可能是一个字母或数字字符。 A 表示该位置必须是一个字母或数字字符
c 和 C c 表示该位置只可能是一个字母, C 表示该位置必须有一个字母
9 和 0 9 表示该位置只可能是一个数字, 0 表示该位置必须有一个数字
< 和 > < 格式符表示随后的字母均以小写的形式显示,直到遇到一个 > 格式字符或 <> 格式符。 > 格式符则和 <正好相反
\ 表示该格式符之后的那个掩码格式符将作为数据中的普通字符对待。当用户想在数据中放进一个掩码格式符时,应该在这个格式符前放一个 \符号。如 \A , \\等等
# 表示该位置可能是一个数字或正符号
! 如有 ! 表示数据前的空格将不被保存在数据中,没有 !则数据后的空格不被保存。 ! 格式符只能放在掩码格式符的第一个字符处
; 和 / 标准的分隔符,可作为数据的一部分。其中 / 在显示时为‘-’而非 /
表 3-12 输入格式符 (2)
返回本节
3.5.5 列表框
列表框控件的一些常用属性有:
ExtendedSelect 、 Items 、 ItemIndex 、
MultiSelected 、 SelCount 、 Selected 、Sorted 。
返回本节
3.5.6 组合框
组合框的常用属性有:
Text 、 SelText 、 SelStart 、
SelLength 、 Style
设计后的效果如图 3-37 所示。
图 3-37 列表框使用实例
( 1 )单击“ File” 菜单的“ Application” 命令,开始一个新的应用程序。
( 2 )设置窗体属性(如表 3-13 所示)。
( 3 )设置完后往窗体中添加控件。
( 4 )在对象编辑器中设置各个控件的属性值(如表3-14 所示)。
( 5 )为各个控件添加事件(如表 3-15 )。
( 6 )添加完事件后,为各个事件编写事件代码(如图 3-35 所示)。
表 3-13 窗体属性
属性 属性值
Caption 列表框的使用
Font 宋体、五号
Height 334
Width 350
表 3-14 控件属性设置
表 3-15 各控件的事件
控件 事件 响应过程名
ListBox1ComboBox1
Button1Button2Button3Button4
OnClickOnChangeOnClickOnClickOnClickOnClick
ChangeTextChangeTextButton1ClickButton2ClickButton3ClickButton4Click
返回本节
3.5.7 多行文本编辑器
Memo 控件常用的方法:
( 1 )使用剪贴板
( 2 )文本的添加
( 3 )文件的保存和装载(程序的界面如图 3-38 所示)。
表 3-16 Memo 控件常用属性
属性 说明
Lines 这是 Memo 控件最常用也是最有用的属性,它用来显示和保存 Memo 控件中的内容
Scrollbar
很多控件都有这个属性。用于设定控件有否滚动条。它有四个值: SSNone 表示既无水平滚动条,也无垂直滚动条;SSHorizontal 表示只有水平滚动条; SSVertal 表示只有垂直滚动条; SSBoth 表示两者都有。当用户要显示的文本或其他的内容较多时,建议选用 SSBoth
Word
Wrap
用于设定 Momo 控件是否具有自动折行功能
Want
Tabs
这个属性只在 Memo 、 RichEdit 和 DBMemo 控件中使用。通常在切换当前焦点控件时,我们通常使用 Tab 键。但在上述三种控件中,编辑文本时常用 Tab 键来跳过若干个空格使文本对齐,这时就会有冲突。所以应将WantTabs 设
置为 True ,这样子在控件内就可以使用 Tab 键来编辑文本
图 3-38 简单的文本编辑器
返回本节
3.5.8 复选框
图 3-39 复选框示例
复选框的几个重要属性:
Alignment :数据类型为 TLeftRight ,用于控制复选框标题的位置。
Allowgrayed :数据类型为 Boolean ,用于确定复选框是否可以处于灰色显示状态。
Checked :数据类型为 Boolean ,用于确定复选框是否被选中,缺省为 False 。
State :数据类型为 TCheckBoxS
返回本节
3.5.9 常用文本处理过程和函数
( 1 )编辑框的常用处理过程与函数
( 2 )列表框的常用处理过程与函数
( 3 )组合框的常用处理过程与函数
返回本节
3.6 有关窗体的操作
3.6.1 向项目中加入新的 Form
3.6.2 在多个 Form 或单元间切换
3.6.3 在一个 Form 中调用另一个 Form
3.6.4 在不同项目间共享 Form
3.6.5 把 Form 以 ASCII 格式储存
3.6.6 使用 Form 模板和向导
3.6.7 在窗体上对控件进行编辑
返回本章首页
3.6.1 向项目中加入新的 Form
( 1 )依次单击“ Tools”→“Repository” 命令打开对话框如图 3-40 所示。
( 2 )在 Pages 栏内选择 Forms ,这时 Object 栏中将显示所有的 Forms 模板,从中选择一个,本例选择 About box 型窗体。
( 3 )确定该模板为新 Form 或主 Form ,通过单击下面的复选按钮来完成。本例全部选中,然后单击” OK” 按钮即可,如图 3-41 所示。
图 3-40 “Object Repository” 对话框
图 3-41 “About box” 窗体
返回本节
3.6.2 在多个 Form 或单元间切换
依次单击菜单“ View”→“Forms” 命令,打开 View
Form 对话框,如图 3-42 所示。从列表框中选择一个窗体后,单击” OK” 按钮。在多个单元间切换同窗体一样。通过依次单击“ View”→“Units” 命令,打开 View Unit 对话框,如图 3-43 所示。或单击工具栏上的“ Units” 按钮亦可。
图 3-42 View Form 对话框
图 3-43 View Unit 对话框
返回本节
3.6.3 在一个 Form 中调用另一个 Form
当项目中添加了一个新的窗体时,系统会自动将窗体的单元名加入到项目文件的 Uses 子句中。通常是把 Uses 子句放到各自单元的 Implementation部分或者把一个单元的 Uses 子句放到 Interface部分,另一个单元的 Uses 子句放到 Implementation部分。通常的 Form 类型如图 3-44 所示。
返回本节
3.6.4 在不同项目间共享 For
要与其他项目共享一个 Form ,有两种方法,其一为,把它加入到对象库中;其二为,把 Form 编译成动态链接库。如图 3-45 、 46 所示。
图 3-44 Form 类的定义
图 3-45 加入到对象库对话框
返回本节
3.6.5 把 Form 以 ASCII 格式储存
用鼠标右键在窗体上单击,打开弹出式菜单,并从中选择“ View As Text” 命令,如图 3-46 所示。
若要保存,单击“ File” 菜单的“ Save As” 命令即可。
图 3-46 窗体的 .DFM 文件
返回本节
3.6.6 使用 Form 模板和向导
首先使用“ File” 菜单的“ New” 命令打开“ New
Iterms” 对话框,如图 3-47 所示。
然后从中指定一个 Form 模板,窗体中包含有对话框、数据列表框、主从式报表等。最后单击” OK”
按钮。
图 3-47 “New Iterms” 对话框
返回本节
3.6.7 在窗体上对控件进行编辑
( 1 )添加控件到 Form 上
( 2 )在 Form 上重复添加同一个控件
( 3 )在 Form 上选择控件的几种方法
( 4 )移动、删除控件以及调整控件大小
( 5 )排列控件(如图 3-48 所示)
图 3-48 Alignment 对话框
返回本节
3.7 有关代码编辑器的使用
3.7.1 代码编辑器窗口的打开和切换
3.7.2 代码编辑器的功能
返回本章首页
3.7.1 代码编辑器窗口的打开和切换
代码编辑器是一个典型的多页窗口,可以通过用鼠标单击页头的方式,在各个页间切换。每一页显示一个已打开的单元。如图 3-49 所示。
但是若想要编辑一个还没有打开的单元,则要使用“ View” 菜单下的“ Unit” 命令或单击工具栏上的按钮打开 View Unit 对话框,如图 3-50 所示。
图 3-49 代码编辑器窗口
图 3-50 View Unit 对话框
返回本节
3.7.2 代码编辑器的功能
1.语句模板功能 ( 如图 3-51 、 3-52 所示 )
2.代码完成功能(如图 3-53 所示)
3.参数提示功能(如图 3-54 所示)
图 3-51 语句模板列表框
图 3-52 使用语句模板完成的 If语句
图 3-53 代码完成功能选单
图 3-54 参数提示实例窗口
返回本节
3.8 项目管理
3.8.1 项目的概念
3.8.2 项目文件的打开和保存
3.8.3 项目文件的编译和运行
3.8.4 项目管理器
返回本章首页
3.8.1 项目的概念
( 1 )项目文件:描述了整个应用程序的结构和启动代码,包含本项目使用的所有窗体和单元的引用(如图 3-55 所示)。
( 2 )窗体文件:每一个窗体都有相应的窗体文件( .DFM ),它保存着窗体和窗体内各个控件的属性如图 3-56 所示。
( 3 )单元文件:用来保存窗体事件的处理过程或单独的源代码,是应用源代码的主要部分。分为两种:有窗体的单元文件和无窗体的单元文件。
图 3-55 项目文件的内容
图 3-56 窗体文件
返回本节
3.8.2 项目文件的打开和保存
要打开一个你以前曾用过的项目,选择“ File” 菜单的“ Open Project” 命令,出现标准的 Windows 打开文件窗口,从中选择一个项目即可。要保存当前项目,选择“ File” 菜单“ Save”
命令。
返回本节
3.8.3 项目文件的编译和运行
( 1 )编译链接
( 2 )重建项目
( 3 )只编译文件
返回本节
3.8.4 项目管理器
图 3-57 项目管理器
返回本节
THANK YOU VERY MUCH !
本章到此结束,
谢谢您的光临!
结束放映 返回本章首页