在TDBGrid部件中显示数据库表中的记录信息时,如果TDBGrid使用数据集部件在运行过程中动态生成的字段部件时,TDBGrid显示数据库表中的记录是按表中记录的缺省顺序和字段的缺省顺序显示表中的记录信息,而且要显示表中各个记录的全部字段的值。而在大多数情况下,用户可能希望按自己喜欢的字段顺序显示记录的各个字段,有时还希望只显示记录的部分字段值,要达到这一目的,必须在设计阶段使用字段编辑器来创建永久性的字段部件,并且还要设置各个字段部件有关的属性。
当使用字段编辑器(Fields Editor)创建永久性的字段部件提供给TDBGrid部件来使用时,我们可以在TDBGrid部件中更灵活地显示数据库表中的记录信息。例如在字段编辑器中的Fields列表框中我们可以设定字段部件的显示顺序,在设定好字段的显示顺序之后,TDBGrid部件便按这个顺序显示记录的各个字段值,当我们设置字段部件的DisplayFormat和EditFormat属性之后,在TDBGrid部件中便相应地以设定的显式和编辑格式显示字段值和编辑字段值;当设置某一个字段部件的Required属性为True时,当插入一条新记录时,必须要为该字段输入相应的字段值,否则会出错;通过设置字段部件的Visible属性,可以确定相应的字段值是否在TDBGrid组件中显示。有关使用字段编辑器来创建字段部件,设置字段部件的属性请参看3.6.2节。
16.4.1 TDBGrid部件的主要属性及应用
TDBGrid部件是用于显示和编辑数据库表中的记录信息的重要部件,它是我们在程序设计过程当中要经常使用的、灵活地用于显示和编辑数据库表中的记录信息的一个强有力的工具。TDBGrid具有很多重要的属性,我们可以在程序设计阶段和程序运行过程中进行设置。TDBGrid部件的一些重要属性及其设置方法请参看联机帮助文件。TDBGrid部件中一些重要的属性是Option属性、DrawMode属性和DefaultDrawing属性,我们重点对两个属性进行阐述。
Options属性:它是TDBGrid部件的一个扩展属性,在程序设计阶段设置Options属性可以控制TDBGrid部件的显示特性和对事件的响应特性。Options属性在TDBGrid部件的属性栏中显示时,它的前面带有一个“+”标志,双击“+”标志,便可以展开一个布尔型属性列表,用户可以逐个地修改其中的各个属性值,修改完毕后可以双击Options属性前的“-”标志,使TDBGrid部件的属性列表恢复到原来的显示状态。
表16.5列出了Options属性中包含的所有的扩展属性项以及它们对TDBGrid部件的影响。
表16.5 TDBGrid部件的Options属性中的扩展属性项
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
属 性 名 取 值 及 影 响
─────────────────────────────────
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/delphi/)dbEditing True: 缺省情况下为此值,确保用户能够在网格中编辑插
入和删除数据库表中的记录
False:在网格中不能编辑、插入和删除表中的记录
─────────────────────────────────
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/delphi/)dbAlwaysShow True: 当用户选中记录中的一个字段时,自动地使该字段
Editor 处于编辑状态
False:缺省情况下为此值。当一个字段被选中,它不能
自动地变成编辑状态
─────────────────────────────────
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/delphi/)dgTitles True: 缺省情况下为此值。在网格的第一行中显示字段名
或字段标题
False:在网格中不显示字段名或字段对应的标题
─────────────────────────────────
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/delphi/)dgIndicator True: 缺省情况下为此值。在网格的最左边用一个黑箭头
标注当前记录指针所在的位置,在插入状态时,箭
头变成星状,在编辑状时,箭头变成"I"头。
False:在网格中不标识当前记录指针的位置
─────────────────────────────────
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/delphi/)dgColumnResize True: 缺省情况下为此值。通过拖拉网格的垂直分隔线可
以改变网格中各列的宽度,在具体操作时要拖拉各
列中显示字段标题区域中的垂直分隔线。
False:网格中各列的宽度不能改变
─────────────────────────────────
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/delphi/)dgCloLines True: 缺省情况下为此值。在网格中显示各列之间的垂直
分隔线。
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/delphi/)False:在网格中不显示垂直分隔线
─────────────────────────────────
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/delphi/)dgRowLines True: 缺省情况下为此值。在网格中显示各行之间的水平
分隔线。
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/delphi/)False:在网格中不显示水平分隔线。
─────────────────────────────────
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/delphi/)dgTabs True: 缺省情况下为此值。可以在记录的各字段之间移动
输入焦点(也即选择提示棒)
False:不能在记录的名字段之间移动输入焦点,在网格中
按Tab键时,直接跳出网格
───────────────────────