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

王朝delphi·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

方法:

关键是用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;

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航