主题:[原创]DBGRID字段值排序问题
wslxg
[专家分:60] 发布于 2006-12-14 19:02:00
DBGRID内的字段值排序怎么搞?
比如:
姓名 编号
张三 01
李四 02
老五 03
我要实现单击姓名,姓名栏的字段值就按升序排列,再点击就降序排列,如此循环?
我是新手啊! 帮忙指教下!
回复列表 (共3个回复)
沙发
wealthy [专家分:1840] 发布于 2006-12-14 22:03:00
procedure TForm1.DBGrid1CellClick(Column: TColumn);//击点DBGrid1内部排序法
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 ADOTable1.Sort<>(Column.FieldName+' ASC') then
begin
ADOTable1.Sort := Column.FieldName+' ASC';
Column.Title.Font.Color := clRed;
Column.Title.Font.Style := [fsBold];
end
else begin
ADOTable1.Sort := Column.FieldName+' DESC';
Column.Title.Font.Color := clBlue;
Column.Title.Font.Style := [fsBold];
end;
end;
procedure TForm1.DBGrid1TitleClick(Column: TColumn);//击点DBGrid1上部列标题排序法
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 ADOTable1.Sort<>(Column.FieldName+' ASC') then
begin
ADOTable1.Sort := Column.FieldName+' ASC';
Column.Title.Font.Color := clRed;
Column.Title.Font.Style := [fsBold];
end
else begin
ADOTable1.Sort := Column.FieldName+' DESC';
Column.Title.Font.Color := clBlue;
Column.Title.Font.Style := [fsBold];
end;
end;
板凳
wslxg [专家分:60] 发布于 2006-12-15 21:12:00
非常感激
大哥你是我的偶像啊!
3 楼
linuxping [专家分:0] 发布于 2006-12-20 17:22:00
EhLib
我来回复