定义一函数:
procedure Tdata.paixu(adoq1 : Tadoquery; dgrd1 : Tdbgrid; Column : TColumn);
begin
for i := 1 to dgrd1.Columns.Count do
begin
dgrd1.Columns[i-1].Title.font.color := clwindowtext;
dgrd1.Columns[i-1].Title.font.style := [];
end; if adoq1.Sort <>(column.FieldName+'ASC') then //判断原排序方式
begin
adoq1.Sort := Column.FieldName+'ASC';
Column.Title.Font.Color := clred ; //改变标题行字体为红色,表示当前的排序方式为升序
Column.Title.Font.Style := [fsBold];
end
else
begin
adoq1.Sort := Column.FieldName+'DESC';
Column.Title.Font.Color := clblue ; //改变标题行字体为蓝色,表示当前的排序方式为降序
Column.Title.Font.Style := [fsBold];
end;end;然后在窗体中调用
procedure Tfm_bm.dgrd1TitleClick(Column: TColumn);
begin
data.paixu(adoq1,dgrd1,column);
end;最后运行时报错“在对应所需名称或序数的集合中,未找到项目”,我查看了我查询的表没有问题,在dbgrid中所指定的列也没有错,到底是什么原因,急切期待中......
procedure Tdata.paixu(adoq1 : Tadoquery; dgrd1 : Tdbgrid; Column : TColumn);
begin
for i := 1 to dgrd1.Columns.Count do
begin
dgrd1.Columns[i-1].Title.font.color := clwindowtext;
dgrd1.Columns[i-1].Title.font.style := [];
end; if adoq1.Sort <>(column.FieldName+'ASC') then //判断原排序方式
begin
adoq1.Sort := Column.FieldName+'ASC';
Column.Title.Font.Color := clred ; //改变标题行字体为红色,表示当前的排序方式为升序
Column.Title.Font.Style := [fsBold];
end
else
begin
adoq1.Sort := Column.FieldName+'DESC';
Column.Title.Font.Color := clblue ; //改变标题行字体为蓝色,表示当前的排序方式为降序
Column.Title.Font.Style := [fsBold];
end;end;然后在窗体中调用
procedure Tfm_bm.dgrd1TitleClick(Column: TColumn);
begin
data.paixu(adoq1,dgrd1,column);
end;最后运行时报错“在对应所需名称或序数的集合中,未找到项目”,我查看了我查询的表没有问题,在dbgrid中所指定的列也没有错,到底是什么原因,急切期待中......
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货