在用Delphi开发数据库应用过程中,经常需要用到DBBrid来显示或编辑数据库表,但相对于IDE自带的DBBridDBGridEh显然要更好用一些(cxDBGrid也同样好使,这里只对DBGridEh进行说明)。

在数据库表结构设计时,通常会习惯使用整型字段来存储如已修改已删除已作废等具有标记性的信息,好处是占存储空间小可扩展性强,缺点是显示方式不友好,但是,使用DBGridEh的一些设置可以弥补这个缺陷。

假设数据库里的表T_Demo里有一个表示性别的字段Sex,其用0表示1表示2表示未知,用DBGridEh显示时仍为012,十分不友好。这时只要做一点美化即可。

  1. DBGridEh的对应列的KeyList属性里分别加入012三个数字,每个数字一行,用代码实现的话就是:
//这里假设第一列就是性别,以下代码相同
DBGridEh.Columns[0].KeyList.Clear;
DBGridEh.Columns[0].KeyList.Append('0');
DBGridEh.Columns[0].KeyList.Append('1');
DBGridEh.Columns[0].KeyList.Append('2');
  1. DBGridEh的对应列的KeyList属性里分别加入未知三行,用代码实现是:
DBGridEh.Columns[0].PickList.Clear;
DBGridEh.Columns[0].PickList.Append('男');
DBGridEh.Columns[0].PickList.Append('女');
DBGridEh.Columns[0].PickList.Append('未知');

这样,原先显示为012的性别就变成了未知。也可以加上图片来进一步美化。

  1. 放置一个TImagList控件,并命名为ilSex,然后分别添加三个图片,比如像卫生间的男、女图片和问号,注意添加后图片对应的索引,否则会张冠李戴。

  2. DBGridEhImagList属性里关联ilSex,并且设置ShowImageAndText属性为True,用代码是:

DBGridEh.ImagList := ilSex;
DBGridEh.ShowImageAndText := True;

这样,性别这一列就有图片有文字,比012要友好很多,而且在编辑的时候也可以直接下拉进行选择来实现性别的录入。

01-25 14:03