以RTF格式显示文本
TDBRichEdit构件可以认为是TRichEdit构件的数据感知版本用于以RTF格式显示BLOB字段中的格式化文本它的用法类似于TDBMemo构件也能显示多行文本
注意尽管TDBRichEdit构件能够显示RTF格式的文本并且提供了很强的编辑功能但是它本身并没有提供用户界面应用程序必须设计出相应的用户界面才能把TDBRichEdit 构件强大的功能发挥出来
默认情况下TDBRichEdit构件允许用户键入新的文本如果不想让用户修改文本可以把ReadOnly属性设为True要允许用户在文本中插入一个制表符应当把WantTabs属性设为True否则当用户按下Tab键将把输入焦点移走而不是插入制表符
要限制用户最多可输入的字符数可以设置MaxLength属性如果这个属性设为表示没有限制如果AutoDisplay属性设为True当DataField属性所指定的字段的内容改变了时TDBRichEdit构件会自动刷新如果AutoDisplay属性设为FalseTDBRichEdit构件上只显示字段名用户必须双击这个构件或程序调用LoadMemo函数才能刷新数据
显示和编辑图像
TDBImage构件可以认为是TImage构件的数据感知版本它可以显示BLOB字段的内容TDBImage构件从数据集中检索了图像后在本地以DIB格式建立一个副本
可以调用CutToClipboard或CopyToClipboard函数把图像剪切或复制到剪贴板中调用 PasteFromClipboard可以从剪贴板中粘贴图像
如果Stretch属性设为True图像将自动缩放以适应TDBImage构件的大小这样就可能造成图像变形
如果AutoDisplay属性设为True当DataField属性所指定的字段的内容改变了时TDBImage构件会自动刷新如果这个属性设为FalseTDBImage构件上只显示字段名用户必须双击这个构件才能刷新数据当然也可以调用LoadPicture来刷新数据
用列表框和组合框显示和编辑数据
有个特殊的数据控件可以用列表框和组合框显示和编辑数据它们可以认为是标准的列表框和组合框的数据感知版本下面简单介绍这个数据控件
TDBListBox用列表框显示一组数据让用户从中选择一个值
TDBComboBox用组合框显示一组数据让用户从中选择一个值
TDBLookupListBox用列表框显示另一个数据集中的一组数据让用户从中选择一个值
TDBLookupComboBox用组合框显示另一个数据集中的一组数据让用户从中选择一个值
TDBComboBox
TDBComboBox构件实际上是TComboBox构件的数据感知版本它能以组合框的形式显示一组数据让用户从列表中选择一个值或直接输入一个值
Items属性用于设置列表中要显示的一组数据在设计期可以单击Items属性边上的省略号按钮打开一个字符串列表编辑器然后输入一些字符串
DropDownCount属性用于设置当用户下拉组合框时不需要加滚动栏就能显示的项的个数默认是表示用户下拉组合框时如果项的个数超过个才加上滚动栏如果实际的项数还没有DropDownCount属性指定的值多下拉的组合框的高度自动缩小
在Style属性设为csOwnerDrawFixed的情况下ItemHeight属性用于设置项的高度
显示另一个数据集中的数据
TDBLookupListBox构件和TDBLookupComboBox构件分别以列表框和组合框的形式显示另一个数据集中的数据
假设有一个表格叫OrdersTable其中包含一个CustNo字段用于表达客户的编号但OrdersTable表中除了客户的编号外不包含客户的其他信息而另一个表格假设叫CustomersTable除了有CustNo字段外还有诸如客户的公司名称地址等信息
TDBLookupListBox构件可以实现这样的功能当用户在OrdersTable中浏览记录时程序首先在CustomersTable中查找与CustNo字段匹配的记录如果找不到就从列表中查找与Company字段匹配的字符串如果找到就选择这一项
用复选框处理布尔类型的字段
TDBCheckBox构件可以认为是TCheckBox构件的数据感知版本用于处理布尔类型的字段例如可以用一个复选框来表示客户是否已付帐
TDBCheckBox构件实际上是把字段的值与预设的两个字符串比较这两个字符串分别由ValueChecked和ValueUnChecked属性指定如果字段的值与ValueChecked属性指定的字符串匹配就选中复选框如果字段的值与ValueUnchecked属性指定的字符串匹配就不选中复选框注意ValueChecked属性和ValueUnchecked属性所指定的字符串不能相同
一般情况下ValueChecked属性设为TrueYes之类的字符串但也可以是其他任意的字符串甚至是一组字符串彼此之间要用分号隔开例如
DBCheckBoxValueChecked := True;Yes;On;
上述情况下当字段的值只要与其中一个字符串匹配就选中复选框要说明的是ValueChecked属性指定的字符串是大小写敏感的一般情况下ValueUnchecked属性设为FalseNo之类的字符串但也可以是其他任意的字符串甚至是一组字符串彼此之间用分号隔开如果字段的值既不与ValueChecked属性指定的字符串匹配也不与ValueUnchecked属性指定的字符串匹配复选框就变灰