Chinaunix首页 | 论坛 | 博客
  • 博客访问: 479637
  • 博文数量: 178
  • 博客积分: 2547
  • 博客等级: 少校
  • 技术积分: 1764
  • 用 户 组: 普通用户
  • 注册时间: 2006-02-22 08:27
文章分类

全部博文(178)

文章存档

2014年(2)

2013年(2)

2012年(2)

2010年(19)

2009年(26)

2008年(69)

2007年(20)

2006年(38)

我的朋友

分类:

2006-02-24 17:20:09

通过ADOQuery或其它数据集组件的Sort属性配合DBGrid的OnTitleClick事件,可以方便地实现此功能。因为Sort属性可以让活动数据集按指定的字段进行排序,也可以选择排序方式(升序/降序),所以我们只要在OnTitleClick事件中设置排序字段和排序方式即可,如以下代码:
procedure TForm1.DBGrid1TitleClick(Column: TColumn);
var i : integer;
begin
  for i:= 1 to DBGrid1.Columns.Count do
  begin
//恢复所有标题字体为默认
    DBGrid1.Columns[i-1].Title.Font.Color := clWindowText;
    DBGrid1.Columns[i-1].Title.Font.Style := [];
  end;
  if ADOQuery1.Sort<>(Column.FieldName+' ASC') then      //判断原排序方式
  begin
    ADOQuery1.Sort := Column.FieldName+' ASC';
    Column.Title.Font.Color := clRed;          //改变标题行字体为红色,表示当前的排序方式为升序
    Column.Title.Font.Style := [fsBold];
  end
  else begin
    ADOQuery1.Sort := Column.FieldName+' DESC';
    Column.Title.Font.Color := clBlue;         //改变标题行字体为红色,表示当前的排序方式为降序
    Column.Title.Font.Style := [fsBold];
  end;
end;
阅读(1165) | 评论(0) | 转发(0) |
0

上一篇:Delphi与office

下一篇:Unix常用命令

给主人留下些什么吧!~~