欢迎来到图者知识网!

江苏省计算机二级讲义,计算机等级考试二级

教育考试 时间:2020-01-22

【www.tuzhexing.com--教育考试】

16.4.2 TDBGrid部件的事件及应用
TDBGrid部件在具有很多重要属性的同时,Delphi也为它赋予了一些事件,以用于控制用户在TDBGrid部件中的操作,我们通过为其中的一些事件编写处理程序,可以有效地控制TDBGrid部件的行为。因为在TDBGrid部件中一次是显示多条记录和记录中的多个字段,也许在实际应用中,不同的用户各有自己特殊的需要,如只想改变其中某一列的值或者控制用户每次只能进出网格中指定的列等等。表16.7列出了TDBGrid部件的主要事件及目的用途。

表16.7 TDBGrid部件中的主要事件

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

事 件 名 目 的 用 途

────────────────────────────────

OnColEntor 当用户进入网格各列时,触发该事件

OnColExit 当用户离开网格各列时,触发该事件

OnDblClick 当用户在网格中双击鼠标左键时,触发该事件

OnDragDrop 当用户在网格中用鼠标进行拖放操作时,触发该事件

OnDragOver 当用户在网格中用鼠标拖动网格时,触发该事件

OnDrawDataCell 用于定制绘制网格中各网格单元,当向网格中填充数

据时触发该事件

OnEndDrag 当用户停止拖动网格时,触发该事件

OnEnter 当网格获得焦点时,触发该事件

OnExit 当网格失去焦点时,触发该事件

OnKeyDown 当用户在网格中按下任何键或组合键时,触发该事件

OnKeyPress 当用户在网格中按了任何一个数字键或字母键时,触

发该事件

OnKeyUp 当用户在网格中释放任何被按下的键时,触发该事件

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

上述这些事件在我们开发实际的应用程序时,是很有用处的,读者们可以仔细地研究这些事件的用途,并参看联机帮助信息。

例如,我们可以为TDBGrid部件的OnDblClick事件编写处理程序,当用户在网格中双击鼠标左键时,弹出一个列表框供用户为网格中某一列选择一个字段值。在例16.1中我们创建如图16.5所示的应用,在Object Inspector中设置各字段部件的Visible属性,在网格中只显示CustNo、Company、Country和City字段。我们为DBGrid编写OnDblclick事件处理过程,当用户编辑修改Country字段时,双击鼠标左键便弹出一个列表框ListBox1,其中显示“中国”、“美国”、“日本”、“英国”、“法国”、“俄罗斯”供用户选择,用户单击其中的国家名称后,将相应的洲名选入网格中。

其中ListBox1的Items属性写入上述国家的名称,并且设置其Visible属性为False。

6.5 TDBNavigator部件及其应用

TDBNavigator 部件主要用于在数据集中进行记录导航和为用户操纵数据集中的记录提供了一组简单明了的控制按钮。TDBNavigator部件中包含一组控制按钮,用户单击其中的按钮可以向前向后移动记录指针、插入记录、修改现存记录、投寄对记录的修改、取消修改、删除记录;以及刷新记录的显示等。

图16.7为TDBNavigator部件中的控制按钮。

下表描述了TDBNavigator部件中的各个控制按钮。

表16.8 TDBNavigator部件中的控制按钮

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

按钮名称 主 要 功 能

─────────────────────────────────

First 将当前记录指针移到数据库表中第一条记录处

Prior 将记录指针移到当前记录的前一条记录处

Next 将记录指针移到当前记录的后一条记录处

Last 将当前记录指针移到数据库表中最后一条记录处

Insert 调用数据集部件的Insert方法,在当前记录的前面

插入一条新记录,并将数据集部件置为插入状态

Delete 删除当前记录,如果TDBNavigator部件的ConfirmDelete

属性设置为true时,会弹出删除确认对话框

Edit 将数据集部件置为编辑状态,以便用户修改当前的记录

Post 投寄对当前记录的修改

Cancel 取消对当前记录的修改,并将数据集部件置为浏览状态

Refresh 清除数据浏览部件的显示缓冲区,并用与其相连的数据

集部件(TTable或TQuery)中的记录刷新显示缓冲区。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

TDBNavigator部件的属性较少。下面我们作一简单的介绍:TDBNavigator部件的一个重要属性是VisibleButtons属性,该属性中包含着多个可选的扩展子属性,主要用于选择TDBNavigator部件中各个控制按钮的显示与否的。因为在实际的应用当中,我们并不需要那么多的控制按钮。如在一个浏览数据库表的应用中,我们一般只需要First、Prior?Next、Last四个按钮就行了,那么我们便在VisibleButtons属性中设置其它的按钮为False即可。

ShowHint属性:该属性是布尔型属性,它用于控制是否显示TDBNavigator部件中各按钮的动态提示信息。缺省情况下该属性的值为False,当设置它的值为True时,当用户将鼠标光标停留在TDBNavigator部件中某一个控制按钮上,超过1秒钟时间后,Delphi便会自动显示有关该控制按钮的提示信息。

Hints属性:在缺省情况下,TDBNavigator部件中的各控制按钮都有相应的动态提示信息,如First、Prior、Next、Last等,用户可以根据自己的需要,通过设置Hints属性可以为各控制按钮设置其他的动态提示信息,用户自己设置的动态提示信息会覆盖原来的提示信息。

16.6 TDBMemo部件及其应用

TDBMemo部件主要用于显示和编辑数据库表中的大二进制(BLOB)类型的字段值。TDBMemo部件能够显示多行文本,也允许用户在其中输入和修改多行文本信息,它是Delphi中用来显示和编辑数据库表中的大二进制类型的文本字段的唯一的数据浏览部件。

TDBMemo部件的主要属性和作用如下:

ReadOnly属性:这是布尔型属性,为True时,用户只能在TDBMemo部件中显示BLOB型文本信息,如Paradox和dBASE数据库表中的备注型字段。当为False时,用户在TDBMemo 部件中不仅可以显示BLOB文本信息而且还允许用户编辑修改其中的文本信息。

MaxLength属性:该属性是整数型属性,设置该属性的值用于限制用户向TDBMemo 部件中输入字符的个数。若设置该值为0时,表示输入字符的个数没有限制。

SCrollBar属性:说明TDBMemo部件是否显示滚动条。

WordWrap属性:说明在TDBMemo部件中输入文本信息时,输入到右边界时,是否自动换行。

Alignment属性:说明文本信息在TDBMemo部件中的对齐方式,有三种可选值:taLeftJustify、taCenter和taRightJustify。其含义分别是左对齐,居中和右对齐。

在运行过程中,用户对TDBMemo部件中显示的文本信息是不能够进行剪切、拷贝和粘贴操作的,要想具备这些功能,用户必须编程调用CutToClipboard、CopyToClipboard 和PasteFromClipboard方法分别来实现剪切,拷贝和粘贴操作。

AutoDisplay属性:因为TDBMemo部件中包含着大量的文本信息。应用程序在运行过程中要显示其中的信息需要花费很多的时间,特别是当用户移动记录指针时,都要更新TDBMemo部件中显示的信息,这样会大大减慢程序的运行速度。为此Delphi为TDBMemo部件设定了AutoDisplay属性,用来控制是否自动显示表中的备注型字段。当AutoDisplay设置为False时,在TDBMemo部件中只显示其对应表中的字段名而不显示字段中的文本信息,用户如果想浏览字段中的文本信息,用鼠标左键双击TDBMemo部件的内部即可;当设置AutoDisplay属性为True时,在TDBMemo部件中会自动地显示其对应数据库表中的字段值。

这里要注意的是,TDBMemo部件中显示和编辑文本信息的最大字节数为32K,在使用过程中不要超过这一限制。

图16.8是TDBMemo显示数据库表中备注型字段的情形。该例子在C:\Delphi\DEMOS\DA子目录中,项目名称为FashFact.dpr。
< BR>用TDBMemo部件显示备注型字段

本文来源:http://www.tuzhexing.com/jiaoyu/1002036/

推荐内容