Delphi数据库控件使用入门(二)
以RTF格式显示文本
TDBRichEdit构件可以认为是TRichEdit构件的数据感知版本 用于以RTF格式显示BLOB字段中的格式化文本 它的用法类似于TDBMemo构件 也能显示多行文本
注意 尽管TDBRichEdit构件能够显示RTF格式的文本 并且提供了很强的编辑功能 但是 它本身并没有提供用户界面 应用程序必须设计出相应的用户界面 才能把TDBRichEdit 构件强大的功能发挥出来
默认情况下 TDBRichEdit构件允许用户键入新的文本 如果不想让用户修改文本 可以把ReadOnly属性设为True 要允许用户在文本中插入一个制表符 应当把WantTabs属性设为True 否则 当用户按下Tab键 将把输入焦点移走 而不是插入制表符
要限制用户最多可输入的字符数 可以设置MaxLength属性 如果这个属性设为 表示没有限制 如果AutoDisplay属性设为True 当DataField属性所指定的字段的内容改变了时 TDBRichEdit构件会自动刷新 如果AutoDisplay属性设为False TDBRichEdit构件上只显示字段名 用户必须双击这个构件或程序调用LoadMemo函数才能刷新数据
显示和编辑图像
TDBImage构件可以认为是TImage构件的数据感知版本 它可以显示BLOB字段的内容 TDBImage构件从数据集中检索了图像后 在本地以DIB格式建立一个副本
可以调用CutToClipboard或CopyToClipboard函数把图像剪切或复制到剪贴板中 调用 PasteFromClipboard可以从剪贴板中粘贴图像
如果Stretch属性设为True 图像将自动缩放 以适应TDBImage构件的大小 这样就可能造成图像变形
如果AutoDisplay属性设为True 当DataField属性所指定的字段的内容改变了时 TDBImage构件会自动刷新 如果这个属性设为False TDBImage构件上只显示字段名 用户必须双击这个构件才能刷新数据 当然也可以调用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属性设为 True Yes 之类的字符串 但也可以是其他任意的字符串 甚至是一组字符串 彼此之间要用分号隔开 例如
DBCheckBox ValueChecked := True;Yes;On ;
lishixinzhi/Article/program/Delphi/201311/8451
2024-09-04 广告