表 各部件的属性设置
━━━━━━━━━━━━━━━━━━━━
属 性 名 属 性 值
────────────────────
TableDatabaseName DEMOS
TableTableName CustomerDB
TableCanModify True
DataSourceDataSet Table
DataSourceAutoEdit True
DBGridDatasource DataSource
DBGridReadOnly False
━━━━━━━━━━━━━━━━━━━━
在其他数据浏览部件(如TDBEdit)中编辑修改其中的内容时只要用户用Tab键或鼠标将焦点移到其他部件时用户对该字段的修改会自动地写回到数据库表中使用TDBGrid部件编辑修改数据库表时Delphi是以记录为基本单位将修改写回磁盘上的数据库表的用户在编辑和修改表中的当前记录时只有用户将记录指针移到其他的记录时Delphi才将用户对当前记录的修改写回到磁盘上的数据库表否则用户即使改变焦点到窗体中的其他部件Dephi也不会投寄用户对当前记录的修改Delphi在向数据库表投寄TDBGrid部件中的被修改的记录时它会自动地检查所有与当前数据库相连的数据浏览部件的状态只要其中有任何一数据浏览部件正在修改数据这时会弹出出错信息并且当前记录的修改不会被投寄(即被写回磁盘上的数据库表)
TDBGrid部件的事件及应用
TDBGrid部件在具有很多重要属性的同时Delphi也为它赋予了一些事件以用于控制用户在TDBGrid部件中的操作我们通过为其中的一些事件编写处理程序可以有效地控制TDBGrid部件的行为因为在TDBGrid部件中一次是显示多条记录和记录中的多个字段也许在实际应用中不同的用户各有自己特殊的需要如只想改变其中某一列的值或者控制用户每次只能进出网格中指定的列等等表列出了TDBGrid部件的主要事件及目的用途
表 TDBGrid部件中的主要事件
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
事 件 名 目 的 用 途
────────────────────────────────
OnColEntor 当用户进入网格各列时触发该事件
OnColExit 当用户离开网格各列时触发该事件
OnDblClick 当用户在网格中双击鼠标左键时触发该事件
OnDragDrop 当用户在网格中用鼠标进行拖放操作时触发该事件
OnDragOver 当用户在网格中用鼠标拖动网格时触发该事件
OnDrawDataCell 用于定制绘制网格中各网格单元当向网格中填充数据时触发该事件
OnEndDrag 当用户停止拖动网格时触发该事件
OnEnter 当网格获得焦点时触发该事件
OnExit 当网格失去焦点时触发该事件
OnKeyDown 当用户在网格中按下任何键或组合键时触发该事件
OnKeyPress 当用户在网格中按了任何一个数字键或字母键时触发该事件
OnKeyUp 当用户在网格中释放任何被按下的键时触发该事件
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
上述这些事件在我们开发实际的应用程序时是很有用处的读者们可以仔细地研究这些事件的用途并参看联机帮助信息
例如我们可以为TDBGrid部件的OnDblClick事件编写处理程序当用户在网格中双击鼠标左键时弹出一个列表框供用户为网格中某一列选择一个字段值在例中我们创建如图所示的应用在Object Inspector中设置各字段部件的Visible属性在网格中只显示CustNoCompanyCountry和City字段我们为DBGrid编写OnDblclick事件处理过程当用户编辑修改Country字段时双击鼠标左键便弹出一个列表框ListBox其中显示中国美国日本英国法国俄罗斯供用户选择用户单击其中的国家名称后将相应的洲名选入网格中
其中ListBox的Items属性写入上述国家的名称并且设置其Visible属性为False
TDBNavigator部件及其应用
TDBNavigator 部件主要用于在数据集中进行记录导航和为用户操纵数据集中的记录提供了一组简单明了的控制按钮TDBNavigator部件中包含一组控制按钮用户单击其中的按钮可以向前向后移动记录指针插入记录修改现存记录投寄对记录的修改取消修改删除记录以及刷新记录的显示等
下表描述了TDBNavigator部件中的各个控制按钮
表 TDBNavigator部件中的控制按钮
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
按钮名称 主 要 功 能
─────────────────────────────────
First 将当前记录指针移到数据库表中第一条记录处
Prior 将记录指针移到当前记录的前一条记录处
Next 将记录指针移到当前记录的后一条记录处
Last 将当前记录指针移到数据库表中最后一条记录处
Insert 调用数据集部件的Insert方法在当前记录的前面
插入一条新记录并将数据集部件置为插入状态
Delete 删除当前记录如果TDBNavigator部件的ConfirmDelete属性设置为true时会弹出删除确认对话框
Edit 将数据集部件置为编辑状态以便用户修改当前的记录
Post 投寄对当前记录的修改
Cancel 取消对当前记录的修改并将数据集部件置为浏览状态
Refresh 清除数据浏览部件的显示缓沖区并用与其相连的数据集部件(TTable或TQuery)中的记录刷新显示缓沖区
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
TDBNavigator部件的属性较少下面我们作一简单的介绍TDBNavigator部件的一个重要属性是VisibleButtons属性该属性中包含着多个可选的扩展子属性主要用于选择TDBNavigator部件中各个控制按钮的显示与否的因为在实际的应用当中我们并不需要那么多的控制按钮如在一个浏览数据库表的应用中我们一般只需要FirstPriorNextLast四个按钮就行了那么我们便在VisibleButtons属性中设置其它的按钮为False即可
ShowHint属性该属性是布尔型属性它用于控制是否显示TDBNavigator部件中各按钮的动态提示信息缺省情况下该属性的值为False当设置它的值为True时当用户将鼠标光标停留在TDBNavigator部件中某一个控制按钮上超过秒钟时间后Delphi便会自动显示有关该控制按钮的提示信息
Hints属性在缺省情况下TDBNavigator部件中的各控制按钮都有相应的动态提示信息如FirstPriorNextLast等用户可以根据自己的需要通过设置Hints属性可以为各控制按钮设置其他的动态提示信息用户自己设置的动态提示信息会覆盖原来的提示信息
TDBMemo部件及其应用
TDBMemo部件主要用于显示和编辑数据库表中的大二进制(BLOB)类型的字段值TDBMemo部件能够显示多行文本也允许用户在其中输入和修改多行文本信息它是Delphi中用来显示和编辑数据库表中的大二进制类型的文本字段的唯一的数据浏览部件
[] [] []