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

  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型字段不可做上述设置,否则系统会提示错误。

 

 

你可能感兴趣的:(String,Integer,Delphi,imagelist)