颈椎小针刀手术后遗症:BCB中关于点击列头排序的显示问题。

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/29 02:52:50
我按照网上的例子做了个DBGrid列表点击列头排序的例子,并且在每次点击列头的时候就会出现一个小三角,用来提示用户该表是按照该列排序的,但是当点击其他列时其他列也出来了个小三角,以前点击过的列的小三角却没有消失,到最后的结果就是所有列都会有个小三角,这样小三角就失去了它的意义。
我现在想要做成和WINDOWS文件夹中排序显示相似的方式,小三角只在你点的当前列出现而不在其他点过的列出现,请问我该怎么做?
以下是排序的源码:

String s;
if(ADOTable1->Active)//
{
if (DBGrid1->Tag==0) //顺序排列
{
ADOTable1->Sort=Column->FieldName+" ASC";
s=Trim(Column->Title->Caption);
if(s.Pos("▼")>0||s.Pos("▲")>0)
s=s.SubString(1,s.Length()-3);
Column->Title->Caption=s+" ▲";
Column->Font->Color = clBlack;
DBGrid1->Tag=1;
}
else //反序排列,改变字体颜色
{
ADOTable1->Sort=Column->FieldName+" DESC";
s=Trim(Column->Title->Caption);
if(s.Pos("▼")>0||s.Pos("▲")>0)
s=s.SubString(1,s.Length()-3);
Column->Title->Caption=s+" ▼";
Column->Font->Color=clRed;
DBGrid1->Tag=0;
}
}