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,自己定义图标,然后,在排序的时候,改变图标