如题。不知道行不行,有没有人试过?如何做呢?
就是想在那放入两个三角形图案,指示该列是升序还是降序排序。

解决方案 »

  1.   

    控件包叫EHLIB,功能比DBGRID强多了,用用吧
      

  2.   

    EHLIB,cxgrid这些都是直接带有排序功能的,而且有图标
      

  3.   

    Enlib3.0控件包,对吧。
    可是我正学着用Delphi2010,能用吗?用Delphi2010的画布不行吗?
      

  4.   

    好像支持2010的还没出。。去Google查查
      

  5.   

    delphi本身的dbgrid不能
    dev的 dxdbgrid 直接就有排序功能 而且带有小三角 
      

  6.   

      这个源码已经很完善了:)   
        
      先定义两个变量   
      private   
                FSort,FSortField:String;//控制grid排序     
    var   
      iFieldCount:Integer;
      begin   
          //if   not   DBGrid1.Active   then   exit;         //进行点击Title排序
          for   iFieldCount   :=   0   to   DBGrid1.Columns.Count   -   1   do   
          begin   
                if   (Copy(DBGrid1.Columns[iFieldCount].Title.Caption,Length(DBGrid1.Columns[iFieldCount].Title.Caption)-1,2)   =   '▼')   or   (Copy(DBGrid1.Columns[iFieldCount].Title.Caption,Length(DBGrid1.Columns[iFieldCount].Title.Caption)-1,2)   =   '▲')   then
                begin
                      DBGrid1.Columns[iFieldCount].Title.Caption   :=   Copy(DBGrid1.Columns[iFieldCount].Title.Caption,1,Length(DBGrid1.Columns[iFieldCount].Title.Caption)-2);
                      break;
                end;   
          end;
          if   Column.FieldName   =   FSortField   then
          begin
                if   FSort   =   'DESC'   then
                      FSort   :=   'ASC'
                else   
                      FSort   :=   'DESC';
          end
          else   begin
              FSortField   :=   Column.FieldName;
              FSort   :=   'ASC';
          end;   
          if   FSort   =   'ASC'   then
               Column.Title.Caption   := Column.Title.Caption+'▲'
           else
               Column.Title.Caption   := Column.Title.Caption+'▼';
          adoq.Sort:=   Column.FieldName+'   '+FSort;
      end;COPY别人的,希望是你要的 呵呵
      

  7.   

    谢谢诸位大侠了!
    由其谢谢ganwendong大侠,您的代码我试试看看。读起来挺有意思的。还是想用画布!因为这一直是偶的弱项,总想试试!用第三方控件好像总是有点心理问题。