当单击DBGrid中的标题栏时,进行排序

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 wangzn1979 的 blog

方法:

关键是用dbgrid的事件 ontitleclick

首先判断单击是哪一列,

     i:=column.index;

然后要确定是哪个字段

    field:=dbgrid1.columns[i].fieldname+' asc';

最后进行排序:

    qrywork.sort:=field;

 

上面仅仅是进行升序排列,若要添加降序排列,则要用' desc'

若要单击后,升序,再单击,降序.....

则要用到一个奇偶判断

我的一个例子

(其中的bsort:boolean,在formshow的时候初始化)

procedure tfmplayvideo.dbgrid1titleclick(column: tcolumn);
var
    i:integer;
    fieldname:string;
begin//排序
    i:=column.index;
    if bsort then
    begin
        fieldname:=dbgrid1.columns[i].fieldname+' asc';
        bsort:=false;
    end
    else
    begin
        fieldname:=dbgrid1.columns[i].fieldname+' desc';
        bsort:=true;
    end;
    qryshow.sort:=fieldname;
end;

 

本文关键:DBGrid,排序
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top