Delphi DBGridEh标题栏的制作(复杂标题栏、标题栏显示图片、按点标题栏进行排序)

来源:互联网 发布:美国网络小说 知乎 编辑:程序博客网 时间:2024/04/19 18:59
 1、定制标题行

<1>、制作复杂标题行

标题行可设为2行以上高度,并可以为多列创建一个共同的父标题行。为实现这个效果,需

在各个列标题属性中以“|”分隔父标题和子标题,如办公用品包括代码和名称两部分,具

体属性设置如下:

usemultititile=true;

titlelines=2

DBGridEh.Columns[0].Title.Caption   :=   '办公用品|代码 ';

DBGridEh.Columns[1].Title.Caption   :=   '办公用品|名称 ';

 

<2>、标题行显示图片  

首先添加一个imagelist组件img1并在其中添加一组bmp,ico格式的图片。然后将DBGridEh

的TitleImages设置为img1.最后在需要显示图片的列标题的Title/imageindex中设置需要显

示的img1中图片的序号。

 

<3>、自动显示标题行的升降排序标志符(▽降序△升序)并做相应排序

DBGridEh组件可以在标题行单元格中显示小三角形升、降排序标志符图片,在运行时可点

击标题行,图片自动切换并做相应排序。具体属性设置如下:

DBGridEh中的: 属性OptionsEh中的子属性dghAutoSortMarking:设置为true;  

DBGridEh中某一列的属性Title中的子属性TitleButton:设置为true   ;

SortMarkedColumns   为当前排序列可在运行时使用.

然后在该列的ontitleBtnclick事件中添加代码:

procedure   TForm_Query.DBGridEh1TitleBtnClick(Sender:   TObject; ACol:   Integer;   Column:   TColumnEh); var  sortstring:string;   //排序列begin//进行排序  with   Column   do  begin    if   FieldName   =   ' '   then   Exit;    if TADOQuery(TDBGridEh(Sender).DataSource.DataSet).Active = False then  Exit;    case   Title.SortMarker   of      smNoneEh:        begin          Title.SortMarker := smDownEh;          sortstring := Column.FieldName + ' ASC ';        end;      smDownEh:begin  sortstring := Column.FieldName + ' ASC ';   end;      smUpEh: begin  sortstring := Column.FieldName + ' DESC '; end;    end;    try    //进行排序      TADOQuery(TDBGridEh(Sender).DataSource.DataSet).Sort := sortstring      except    end;  end;end;

切记lookup型字段不可做上述设置,否则系统会提示错误。

 

 

原创粉丝点击