在用Delphi开发数据库应用过程中,经常需要用到DBBrid
来显示或编辑数据库表,但相对于IDE自带的DBBrid
,DBGridEh
显然要更好用一些(cxDBGrid
也同样好使,这里只对DBGridEh
进行说明)。
在数据库表结构设计时,通常会习惯使用整型字段来存储如男
、女
、已修改
、已删除
、已作废
等具有标记性的信息,好处是占存储空间小
且可扩展性强
,缺点是显示方式不友好,但是,使用DBGridEh
的一些设置可以弥补这个缺陷。
假设数据库里的表T_Demo
里有一个表示性别的字段Sex
,其用0
表示男
,1
表示女
,2
表示未知
,用DBGridEh
显示时仍为0
、1
、2
,十分不友好。这时只要做一点美化即可。
- 在
DBGridEh
的对应列的KeyList
属性里分别加入0
、1
、2
三个数字,每个数字一行,用代码实现的话就是:
//这里假设第一列就是性别,以下代码相同
DBGridEh.Columns[0].KeyList.Clear;
DBGridEh.Columns[0].KeyList.Append('0');
DBGridEh.Columns[0].KeyList.Append('1');
DBGridEh.Columns[0].KeyList.Append('2');
- 在
DBGridEh
的对应列的KeyList
属性里分别加入男
、女
、未知
三行,用代码实现是:
DBGridEh.Columns[0].PickList.Clear;
DBGridEh.Columns[0].PickList.Append('男');
DBGridEh.Columns[0].PickList.Append('女');
DBGridEh.Columns[0].PickList.Append('未知');
这样,原先显示为0
、1
、2
的性别就变成了男
、女
、未知
。也可以加上图片来进一步美化。
放置一个
TImagList
控件,并命名为ilSex
,然后分别添加三个图片,比如像卫生间的男、女图片和问号,注意添加后图片对应的索引,否则会张冠李戴。在
DBGridEh
的ImagList
属性里关联ilSex
,并且设置ShowImageAndText
属性为True
,用代码是:
DBGridEh.ImagList := ilSex;
DBGridEh.ShowImageAndText := True;
这样,性别这一列就有图片有文字,比0
、1
、2
要友好很多,而且在编辑的时候也可以直接下拉进行选择来实现性别的录入。