haihongyuan.com
海量文库 文档专家
全站搜索:
您现在的位置:首页 > 小学教育 > 学科竞赛学科竞赛

129447936899843750数据库技术[二]6

发布时间:2013-12-28 16:00:53  

《数据库技术》
讲课:34学时

总 学 时 :64学时
实验:30学时:(12次) 教 师 : 薛昌春 xuechangchun@163.com 信息管理系

第六章:Delphi常用控件程序设计
在使用Delphi开发应用程序中,广泛地使 用到组件。可视组件库(Visual Component Library,简称VCL)是Delphi中最重要的部分, 通过VCL可以在窗体中方便地构建与用户交互 的界面,其中大部分组件显示在组件面板 (Components Palette)上。除了少数例外, 所有的组件都是TComponent类的子类。

一、Standard页上的常用组件
1. Label标签组件 标签组件用于在窗体上显示文字,通常用它为 其他组件加上一些标注和说明文字,以便让使用者 了解那些组件的用途。特别是有些组件本身没有 Caption属性,添加一个标签组件作为提示文字就很 有必要。 可将标签组件的焦点转移给Form上的另一个对 象,方法是设置标签组件的FocusControl属性。在 值段中,选用与它关联对象的对象名。然后在标签 中设置热键,即在Caption属性值段中输入含有“&” 的字串,紧接“&”之后的字母称为热键字母,当用 户使用“Alt+热键字母”时,将焦点选中它所指向 的对象。

标签组件常用属性
? ?

?

?

Caption:设定标签中显示的文字 AutoSize:为True,标签的长度随文字的长 度而改变 Transparent:为True,是透明标签,会显示 背景颜色 Alignment:指定文本在标签矩形框内的水平 对 齐 方 式 , taLeftJustify ( 左 对 齐 ) , taCenter(居中), taRightJustify(右对 齐)

?

Layout:指定文本在标签矩形框内的垂直对 齐 方 式 , tlTop ( 向 上 对 齐 ) , tlCenter (居中), tlButton(向下对齐)
WordWrap:为True,文本到达矩形框右边界 时自动折返;为False,文本太长时会截断 ShowAccelChar:为True,则会在&字符右边 的字符加上底线“ ”,表示此字符为Label 组件的热键字母

?

?

2. Edit编辑框组件
编辑框组件常用于文本输入输出,不仅 可以显示用户的字符串文本,还允许用户输 入和编辑文本。在人机交互界面中,使用 Edit对象最主要的目的就是接收用户信息, 通常用Edit对象输入数据,如输入用户姓名、 通信地址等。 编辑框组件的常用事件 : ①OnChange:当编辑框组件中的文本发生改变 时触发此事件。 ②OnKeyPress:当编辑框接收到键盘字符时触 发。

编辑框组件常用属性
?

?

?

?

?

Readonly:决定编辑框内的文本是否可以被 编辑。为True时,只能显示文本,不能输入 和更改文本 BorderStyle : 设 置 编 辑 框 的 边 框 类 型 : bsSingle,单线边框;bsNone,无边框 AutoSelect:当组件获得焦点时,是否自动 选中所有的文本 AutoSize:指定编辑框的高度是否随文本

的 高度而改变 Enabled:为False,编辑框不响应任何事件

?

PasswordChar:指定一个字符来代替显示用 户输入的字符,在用户输入密码时常用
MaxLength:编辑框内可输入文字的最大长 度。-1表示没有长度限制,默认值为-1 SelText:被选中的文本

?

?

?

CharCase:设置编辑框文字的大小写状态: ecLowerCase,转为小写;ecNormal,不改 变;ecUpperCase,转为大写

编辑框组件的常用方法
方法 说明 清除编辑框内的所有内容 清除编辑框内被选中的内容 将编辑框内选中的文本复制到剪贴板中 将编辑框内选中的文本剪切到剪贴板中 将剪贴板中的内容粘贴到编辑框中 选中编辑框内的所有内容

Clear ClearSelection CopyToClipboard

CutClipboard PasteFromClipboar d
SelectAll

3. Memo多行编辑框组件
多行编辑框组件Memo与Edit组件很相像, 都是提供给用户在程序中输入数据或显示文 字用的对象。与编辑框组件不同的是,多行 编辑框组件可以显示和编辑多行文本,而编 辑框组件只能显示和编辑一行文本。多行编 辑框组件的属性和方法与编辑框组件有很多 相同之处,如Text、MaxLength、ReadOnly等 属性。

(1)Memo组件的Lines属性
Lines属性设置和显示在多行编辑框组件 内的文本。在对象监视器窗口单击Line属性 旁边的“...”按钮,打开编辑器窗口,在空 白区域可以输入多行文本。区域的上方显示 输入文本的行数。 Text与Lines都用来存取数据,Text存放 Memo对象中全部的输入数据,而Lines[i]存 放第i+1行的字符串。例如:设置第5行文本 值为“Delphi程序设计” 程序代码可以写成: Memo1.Lines[4] := ‘Delphi程序设计';。

Lines常用的属性和方法
Strings属性:指定组件每一行文本的内容 Memo1.Lines.Strings[0] :=‘第一行’; 等效于Memo1.Lines[0] :=‘第一行’;
?

Add方法:在组件的最后添加一行文本 Memo1.Lines.Add('最后一行下面加一行文字'); ? Insert方法:在指定行下方插入一行文本 Memo1.Lines.Insert(2,'第三行处插入一行'); ? Delete方法:删除组件内指定行的文本 Memol.Lines.Delete(2); // 删除第三行
?

SaveToFile:将文本保存到文件 Memo1.Lines.SaveToFile('C:\temp\a.txt');
?

LoadFromFile:读取文件内容到Memo组件中 Memo1.Lines.LoadFromFile('C:\temp\a.txt');
?

Clear:清除组件内的所有文本 Memo1.Lines.clear;
?

(2)Memo组件的其他常用属性
?

?

?

ScrollBar:设置是否显示滚动条。有四个值: ssBoth , 显 示 水 平 和 垂 直 滚 动 条 ; ssHorizontal,显示水平滚动条;ssVertical, 显示垂直滚动条;ssNone,不加滚动条。 WantReturn:设置在组件内部能否使用回车键, 为True表示可以使用回车键。 WantTab:设置在组件内按Tab键是否起到移位 作用,可取True和Fa

lse两个值

4. Button基本按钮组件
按钮是人机交互界面最常见的一个组件, 通常用于用户选取执行某项命令。Delphi 提供的按钮有基本按钮、位图按钮、复选 框、单选按钮、加速按钮等。基本按钮 Button是最简单的一种按钮。

(1)Button按钮的常用属性
?
?

?

Caption:按钮上显示的文本 Default:设定按钮是否为默认按钮。默认 按钮在打开窗体或对话框时首先取得焦点, 此 时 按 下 Enter 键 , 将 执 行 默 认 按 钮 的 OnClick 事 件 处 理 代 码 。 虽 然 可 将 多 个 Button对象指定为默认按钮,但只有Tab次 序最前的Button对象才是真正的默认按钮 Cancel:设定按钮是否为取消按钮,取消按 钮的功能与默认按钮相同,但它是针对Esc 键设计的。当用户按下Esc键,被设为取消 按钮的OnClick事件处理就会被执行

(2)Button按钮的常用事件
Button 按 钮 常 用 的 响 应 事 件 有 : OnClick 、 OnDblClick 、 OnMouseMove 、 OnMouseUp 、 OnMouseDown 等 。 OnClick 及 OnDblClick处理事件是最常用的。 当用户用鼠标在Button对象上单击一下, 或是当焦点在Button对象上时按下Enter键, 触发OnClick事件处理。

5. Panel面板组件
Panel组件内,起分组作用 。另外, Panel组件提供了优化视觉效果的属性,因此 Panel组件也常作为某些组件的背景,使程序 界面更协调、优美。面板组件Panel还常用于 制作信息栏或状态栏。

面板组件Panel的常用属性
?

?

?

Align:固定Panel的位置:alBottom,固定 在父组件下方;alCient,覆盖父组件的全 部;alLeft,固定在父组件左方;alNone, 位置没有限制;alRight,固定在父组件右 方;altop,固定在父组件上方 BevelInner:确定Panel内层是凸出还是凹下: bvLowered,内层凹下;bvNone,内层无凹 凸;bvRaised,内层凸出 BevelOuter:确定Panel外层是凸出还是凹下: bvLowered,外层凹下;bvNone,外层无凹 凸;bvRaised,外层凸出

?

? ?

BevelWidth:确定Panel内层或外层边界线的 粗细,数值越大界线越粗 BorderStyle:确定Panel是否有外框。 BorderWidth:确定Panel外层部分的宽度, 数值越大外层越宽

6. CheckBox复选框组件
复选框有一小方框,旁边带有文本说明, 一般具有选中和未选中两种状态,鼠标单击 复选框可以在这两种状态之间切换。选中复 选框时,小方框内有√标记。 通常由多个复选框组件形成一组,在这 一组中用户可同时选中多个组件,选项彼此 之间是不具有“互斥性”,不会影响其他选 项的行为,适用于要进行多项选择的情况。 组件可以识别OnClick事件。

复选框组件的常用属性
?

?

?

State:指定三种状态:cbChecked,选中; cbUnChecked,未选中;cbGrayed,不确 定 Checked:为True,则选中,

小方框内有 √标记;为False则未选中 Caption:设置复选框旁边的说明文字

例:设置字体风格
粗体、斜体、下划线 Label1.Font.Style := []; ? fsBold ? fsItalic ? fsUnderline ? fsStrikeOut 集合:并运算+

差运算-

7. 单选按钮组件
单选按钮是旁边带有文本说明的小圆圈, 具有选中和未选中两种状态。组件的Checked 属性值为True时,组件处于选中状态,小圆 圈的内部有黑色的小点;为False时,组件处 于未选中状态,小圆圈是空心的。 在一组单选按钮中,只允许一个单选按钮处 于选中状态,也就是说,在同一群组中的选 项彼此之间是具有“互斥性”。单选按钮适 用于在多个选项中选择一项的情况。

单选按钮组的实现通常用三种方法:
?

利用GroupBox分组组件+ RadioButton单选按钮组件 ? 利用Panel面板组件+ RadioButton单选按钮组件 ? 利用RadioGroup单选分组框组件, 其常用属性有: Caption:设置显示在组件上方的文字 Columns:设置组件的列数,最多可有16个 ItemIndex:设置单选分组框中被选中的单选按钮的索 引值,从0开始 Item:设置单选分组框中单选按钮的标题文字,每行文 本代表一个选项。利用提供的方法可以添加(Add)、 删除(Delete)、插入(Insert)、交换(Exchange) 选项按钮。

例:设置字体名称
? ? ? ? ?

case RadioGroup1.ItemIndex of 0: label1.Font.Name:='宋体'; 1: label1.Font.Name:='黑体'; 2: label1.Font.Name:='楷体_GB2312'; end;

8. ListBox列表框组件
列表框中可以显示出所有可能的数据 供用户选择,用户可以选择其中的一项或 多项。列表框组件常用于选项较多的情况。

列表框组件的常用属性
? ?

?

?

Items:列表框内的选项数据。 程序运行时,可以利用Items对象提供的方 法:Add添加一个选项,Delete删除一个选 项,Clear删除所有选项,Insert插入一个 选项,Move移动选项位置,Exchange交换两 个选项的位置。 Count:列表框内的选项数据的项数 ItemsIndex:选项在Items数组中的编号, 从0开始至Count-1

? ? ? ? ?

Columns:列表框的列数 MultiSelect:是否可以选择多项 SelCount:被选中项目的数量 Selected:设置或返回某选项是否被选中 Sorted:决定列表框的选项是否排序

9. ComboBox组合框组件
组合框组把Edit编辑框和ListBox列 表框两者功能合二为一,用户可以直接输 入内容,也可以单击向下的箭头后拉出一 个列表框,从中选择某个列表项。 在组合框中选项数据的新增、删除、 移动、选取等等,也是利用Items对象的 Add、Delete、Clear、Insert、Exchange、 Move等方法完成。

组合框组件的常用属性
? ?

? ?

?

Items:组合框下拉列表的选项数据。 程序运行时,可以利用Items对象提

供的方法:Add 添加一个选项,Delete删除一个选项,Clear删除 所有选项,Insert插入一个选项,Move移动选项位 置,Exchange交换两个选项的位置 Count:下拉列表的选项数据的项数 ItemsIndex:选项在Items数组中的编号,从0开始 至Count-1 Text:确定在组合框中显示的文本

? ?

?

Sorted:决定组合框的列表选项是否排序 Style:组合框的风格,有几种可供选择的风格: csDropDown,标准风格,用户可以在组合框中输入; csDropDownList , 只 有 列 表 框 , 没 有 编 辑 框 ; csOwnerDrawFixed,有编辑框,但只能显示不能输 入,也有列表框,每个列表项的高度由ItemHeight 属性统一指定;csOwnerDrawVariable,有编辑框, 但只能显示不能输入,也有列表框,每个列表项的 高度可以不同,可显示非字符串的数据;csSimple, 只有编辑框,没有列表框 DropDownCount:组合框下拉列表显示选项的最大行 数

[例]:某单位开运动会,该单位员工姓名 可在ComboBox1的列表框中选取,也可以 从键盘输入。所有参赛项目放在 ListBox1中供选取,将某员工将要参赛 的项目从选取至Memo1组件中。

? ? ? ? ?

?
?

?

procedure TForm1.Button3Click(Sender: TObject); VAR I:INTEGER; begin FOR I:=0 TO LISTBOX1.Count-1 do if LISTBOX1.Selected[I] THEN MEMO1.Lines.Add(COMBOBOX1.Text+'----'+LISTBOX1.Items.Strings[I]); end;

二. Additional页上的常用组件
1. BitBtn位图按钮组件 位图按钮与基本按钮的作用相同。 基本按钮上只能显示文字,而位图按钮 上不仅可以显示文字,还可以显示位图, 使界面更加美观。

BitBtn组件的常用属性
? ?

? ?

?

Caption:位图按钮上显示的文字 Kind:确定位图图形的种类,可取11个值。当 为bkCustoms时, 位图图形由Glyph属性确定。 取另外10个值,由系统规定按钮的图形文字 Glyph:确定位图图形文件(*.bmp) Spacing:确定按钮上位图与文字的像素个数。 为-1时,文字、位图、按钮成等距离 Margin:确定位图与按钮边界之间的像素个数

?

Layout:位图按钮上文字和图形的布局。 ? 为blGlyphLeft,图像在文字的左边; ? 为blGlyphRight,图像在文字的右边; ? 为blGlyphTop,图像在文字的上面; ? 为blGlyphBottom,图像在文字的下面

2. SpeedButton加速按钮组件
加速按钮上也可以显示图形和文字, 用法与位图按钮非常相似。其他的按钮如 普通按钮、位图按钮在按下后立即弹起, 而加速按钮可以在按下后仍保持按下的状 态。通常多个加速按钮形成一组,在这一 组中只能有一个按钮处于按下状态。因此, 加速按钮多用于生成工具栏按钮。

SpeedButton的常用属性
? ?

?

?

? ?

Caption:按钮上显示的文字 AllowAllUp:为True,允许一组中的所有按钮

都可 以弹起;为False,一组按钮中有一个是按下状态 Down:确定按钮是弹起(False)还是按下(True) 状态,同一组只能有一个为True GroupIndex:确定加速按钮的组号,为0表示此按钮 不属于任何一组。此值相同的按钮将组成同一组 Glyph:确定显示在按钮上的位图图形文件(*.bmp) Layout:确定按钮上文字和图形的布局

三、Win32页上的常用组件
1. ImageList图形列表组件 ImageLlist组件用于管理一组(icons)图标 或(bitmaps)位图。同一个ImageList组件 中的图形大小相同,默认大小为16╳16像素, 因此这些图形适合于作图标。如果 ImageList组件中有n个图形,则每个图形都 编一个号,编号从0到n-1,通过编号可以访 问对应的图形。

ImageList组件的常用属性
? ?

?
? ?

?

Height:确定图形的高度,默认值为16像素 Width:确定图形的宽度,默认值为16像素 BkColor:确定背景颜色 BlendColor:确定前景颜色 ImageType:默认值为itImage,表示显示原 图形;若值为itMask则显示原图形的掩码 Masked:值为True表示含有透明图形,值为 False则含有不透明图形

利用图形列表编辑器可以向 ImageList组件内加载图形。双击 ImageList组件可以打开图形列表编辑 器。

2. ToolBar工具栏组件
工具栏把常用的菜单项对应成按钮,并 把多个按钮以列表的形式排列成行,用户单击 工具栏某个按钮就执行该菜单项的功能,不需 要到菜单中去找相应的菜单项。 工具栏中可以添加按钮(Button)、图形 按钮(BitBtn)、加速按钮(SpeedButton)、 组合框(ComboBox)、编辑框(Edit)等。 工具栏可以放在标题栏或菜单的下面,也可以 放在窗口工作区的下面或左边。

使用ToolBar组件建立工具栏的步骤
(1)将ToolBar添加到窗体上,生成空白的工 具栏。默认位于窗口的顶部,宽度与窗体相 同。设置Alignment属性可以改变工具栏的 位置。 (2)右击ToolBar组件,从弹出式菜单中执行 “New Button”,则在工具栏中添加一个按 钮。

工具栏组件常用属性
?

? ?

Alignment:确定工具栏相对窗体的位置。默 认值为alTop,位于顶部;alLeft,位于左边; alRight,位于右边;alBottom,位于底部; alClient,占满整个窗体;alCustom,用户 自定义; alNone,位置没有限制 Caption:按钮上显示的文字 Flat:默认值为False,表示工具栏上的按钮 有边框;值为True表示按钮无边框,程序运 行时鼠标移到按钮上面,按钮自动凸出显示

工具栏组件常用属性
?

?

?

Images : 指 定 工 具 栏 的 图 形 组 件 ( 通 常 是 ImageList组件) List:默认值为False,表示图标在按钮的中 间,文字在图标的下方;值为True表示图标 在按钮的左边,文字在图标的右边 ShowCapti

on:默认值为False,表示按钮上 不 显 示 文 字 ; 值 为 True 表 示 按 钮 上 显 示 Caption属性的文字

工具栏按钮常用属性
? ?

? ?

?

Down:默认值为False,表示按钮处于弹起状态; 值为True表示按钮处于按下状态 Grouped:默认值为False,表示按钮不成组;值为 True表示按钮成组(一个组中只能有一个按钮处于 按下状态) ImageIndex:设定ImageList组件的图标索引号 MenuItem:指定本按钮与哪个菜单项相对应 Style:确定按钮的风格:TbsButton,按钮任何时 候都处于按下状态;TbsCheck,单击按钮变为按下 状态,再单击按钮变为弹起状态;Tbsdivider,显 示 分 隔 符 ; TbsDropDown , 显 示 向 下 的 箭 头 ; TbsSeparator,显示为空的分隔符

3. ProgressBar进度条组件
进度条组件用来指示一项任务的执行 进度,随着任务的进行,在进度条的矩形 区域内从左向右填充上小方块,当方块充 满整个矩形区域时,表示任务的完成。

进度条组件常见的属性
? ? ?

?

?

?

Max:确定进度条的最大数值 Min:确定进度条的最小数值 Orientation : 确 定 进 度 条 方 向 。 pbHorizontal表示水平方向,pbVertical表 示垂直方向 Position:取值在min与max之间,表示进度 进展情况 Smooth:确定方块填充方式是平滑的(True) 还是分段的(False) Step:确定进度条的步长,即Position的递 增值

进度条组件常见的方法
?

?

StepBy(Data:Integer) : 增 加 Position 的值,增加的大小由Data确定 StepIt:也能增加Position的值,增加 的大小要由Step确定

4. StatusBar状态栏组件
状态栏一般位于窗体的底部,用于显示 当前状态信息。 状态栏组件初始是个空白的状态栏,常 常要在状态栏上添加多个状态面板,并在每 个状态面板上添加文字作为提示信息。双击 状态栏组件,打开面板编辑器,添加状态面 板。单击面板编辑器中的“新增”按钮,为 状态栏添加状态面板。在对象监视器中,在 状态面板的Text属性中输入文字,状态栏中对 应的面板上将显示这些文字。

状态栏组件常用属性
?

? ?

Alignment:确定状态栏在对窗体的位置。 默认值为alBottom,位于底部;alLeft,位 于左边;alRight,位于右边;alTop,位于 顶部;alClient,占满整个窗体;alCustom, 用户自定义; alNone,位置没有限制 BorderWidth:状态栏边框的宽度 Panels:状态栏中的面板集合

状态栏面板常见的属性
Alignment:确定文字在状态栏面板中对齐 方式 ? Text:确定显示状态栏面板上的文字 ? Width:确定状态栏面板的宽度 状态栏的Panels属性也是一个对象, Panels.Items[i].text(i=0, 1, 2, ...)可以用来 设置第i个状态栏面板上显示的文字。
?

其他组件
Timer组件:

(1)Enabled属性:该属性值决定Timer是否有效。如 果Enabled值为True,则OnTimer事件将发生;如果 是False,则OnTimer事件不发生。Enabled缺省值是 True。 (2)Interval属性:该属性值以毫秒为单位,决定了 触发OnTimer事件的时间间隔。缺省值是1000(即1 秒),取值范围是0~65535之间的整数。如果将 Interval设为0,则没有OnTimer事件发生。 (3)OnTimer事件:每经过由Interval属性确定的时间 间隔,为该事件编写的处理程序将自动执行一次。

Application组件
当一个应用程序运行时,Delphi会自动 产生一个Application对象,用来取得或设定 和整个应用程序有关的属性。

1)Title、Icon属性

属性Icon决定了该应用程序在Windows操作系统中以 什么图标显示,图标下方的文本由Title属性决定。 ? 在程序设计阶段,这两个属性设定方法为: 在Delphi IDE中,选择执行【Project】→【Options…】 菜单项。在“Title”编辑框中改变Title属性值,点 击 “Load Icon”按钮改变应用程序图标。 ? 在程序运行阶段,可以用代码设置这两个属性的值: Application.Icon.LoadFromFile ('D:\Demo\Myicon.ico'); Application.Title:='My First Program';

2)ExeName属性:记录了该应用程序的文 件名,以及所在的磁盘名、文件夹名。

Image组件
1. 主要属性、方法和事件 (1)Picture属性:用于设置在Image对象中 显示的图像。在程序设计阶段,可以在对象 观察器里点击Picture属性右边的“…”按钮, 在弹出的图片编辑器(Picture Editor)中调 入(Load)、保存(Save)或清除(Clear) 图片。 在程序的执行阶段,若要存取图片,可调用 Picture对象以下两种方法: LoadFromFile(Filename:String) SaveToFile(Filename:String)

(2)Left、Top、Height、Width属性 在程序运行时改变Left、Top属性的值,可以实现在窗 口上移动图像的效果。Height和Width分别决定了 Image边框的高度和宽度。 (3)AutoSize、Stretch属性 由于被装入Image对象的图像大小与由Height和Width 决定的Image边框的大小不一定会一样。 如果把AutoSize属性值设为True,则Image边框的范围 会自动调整到和图像大小一样。 如果把Stretch属性值设为True,则图像会放大或缩小 成和Image边框大小相同。


网站首页网站地图 站长统计
All rights reserved Powered by 海文库
copyright ©right 2010-2011。
文档资料库内容来自网络,如有侵犯请联系客服。zhit326@126.com