手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>程序设计>delphi>列表

Delphi 数据浏览部件的应用及编程(二)

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

DefalultDrawing属性:该属性是布尔型属性,它用于控制网格中各网格单元的绘制方式。在缺省情况下,该属性的值为True,也就是说Delphi使用网格本身缺省的方法绘制网格中各网格单元,并填充各网格单元中的内容,各网格单元中的数据根据其对应的字段部件的DisplayFormat属性和EidtFormat属性进行显示和绘制。如果DefaulDrawing属性被设置为False时,Delphi不会自动地绘制网格中各网格单元和网格单元中的数据,用户必须自己为TDBGrid部件的OnDrawDataCell事件编写相应的程序用于绘制各网格单元和其中的数据。

在了解了TDBGrid部件的各个属性之后,我们便可以使用TDBGrid部件来显示和编辑数据库表中的数据了。图16.5所示的应用窗体中各部件的属性设置如表16.6所示。

 

表16.6 各部件的属性设置

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

属 性 名 属 性 值

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

Table1.DatabaseName DEMOS

Table1.TableName Customer.DB

Table1.CanModify True

DataSource1.DataSet Table1

DataSource1.AutoEdit True

DBGrid1.Datasource DataSource1

DBGrid1.ReadOnly False

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

 

在其他数据浏览部件(如TDBEdit)中编辑修改其中的内容时,只要用户用Tab键或鼠标将焦点移到其他部件时,用户对该字段的修改会自动地写回到数据库表中,使用TDBGrid部件编辑修改数据库表时,Delphi是以记录为基本单位将修改写回磁盘上的数据库表的。用户在编辑和修改表中的当前记录时,只有用户将记录指针移到其他的记录时,Delphi才将用户对当前记录的修改写回到磁盘上的数据库表,否则,用户即使改变焦点到窗体中的其他部件,Dephi也不会投寄用户对当前记录的修改。Delphi在向数据库表投寄TDBGrid部件中的被修改的记录时,它会自动地检查所有与当前数据库相连的数据浏览部件的状态,只要其中有任何一数据浏览部件正在修改数据,这时会弹出出错信息,并且当前记录的修改不会被投寄(即被写回磁盘上的数据库表)。

 

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 取消对当前记录的修改,并将数据集部件置为浏览状态

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!