首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

bcb TDBGridEh控件怎么实现双击表头进行排序和改变图标

2012-04-13 
bcb TDBGridEh控件如何实现双击表头进行排序和改变图标OptionEh 里的AutoSortMarking trueSortLocal

bcb TDBGridEh控件如何实现双击表头进行排序和改变图标
OptionEh 里的AutoSortMarking = true;
SortLocal = true;
所有列 Column->TitleButton = true;
在DBGridEhTitleClick(TColumnEh *Column)事件里
AnsiString IFieldName;
if(Column->FieldName =="" )return;
IFieldName = Column->FieldName;

if(DBGridEh->DataSource->DataSet->FieldByName(IFieldName)->IsBlob((TMetaClass *)this))
return ;
IFieldKind = DBGridEh->DataSource->DataSet->FieldByName(IFieldName)->FieldKind;
switch(IFieldKind)
{
case fkLookup:
IFieldName =DBGridEh->DataSource->DataSet->FieldByName(IFieldName)->KeyFields;
break;
case fkData:
break;
default:
  return;
}

try
{
if(!qryData->Eof)
{
{
if(qryData->Sort == IFieldName+" ASC")
{
qryData->Sort=IFieldName+" DESC";
}
else
{
qryData->Sort=IFieldName+" ASC";
}
}
}
  }
  catch(...)
  {}
可以实现双击排序,但是标题上的图标在单击时候就更改了,有什么办法能屏蔽单击事件,只有在双击时才改变吗

[解决办法]
其实是单击排序吧,你的意思是单击了那个标志就变了。你把它实现成单击排序不就ok了
[解决办法]
Column->TitleButton = true这个设置成false,自己定义图标,然后,在排序的时候,改变图标

热点排行