1
procedure TForm1.DBGrid1TitleClick(Column: TColumn);
begin
   Str:=Column.Title.Caption;
   if Adoquery1.Sort=Column.FieldName +' ASC ' then
      Adoquery1.Sort:=Column.FieldName +' DESC '   //a
   else
      Adoquery1.Sort:= Column.FieldName +' ASC ';   //b
end;   我想在a的地方,如果是降序就在标题兰上显示个上箭头,b的地方显示下箭头?!请问如何实现;2请问怎么在dbgrid中的某一栏"是否到货",是则显示个勾,否显示个叉?!

解决方案 »

  1.   

    你换个组件吧,DXdbgrid 这些你都不要烦
      

  2.   

    请问楼上的DXdbgrid在那里啊/!?
      

  3.   

    www.51delphi.com
    有一堆支持这些的操作的DBGrid控件。
      

  4.   

    EhLib中的DBGridEh有你想要的所有功能,下载下去研究一下吧,搜一下,很多
      

  5.   


     1、 判断一下,动态设定标题 2、Canvas.textout();
      

  6.   

    先设一个全局变量FSort:String;procedure TForm1.DBGrid1TitleClick(Column: TColumn);
    var CTStr:String;
    begin
      CTStr:=Column.Title.Caption;
      if (FSort='ASC') or (FSort='') then
        begin
        ADODateSet1.Sort:=Column.FieldName + ' ASC';
        Column.Title.Caption:=CTStr+'▲';
        FSort:='ASC';
        end
      else
        begin
        ADODateSet1.Sort:=Column.FieldName + ' DESC';
        Column.Title.Caption:=CTStr+'▼';
        FSort:='DESC';
        end;
    end;
      

  7.   

    每二个问题 : 用计算字段,
       
    if 到货 then 
      
    else if 没到货 then
      

  8.   

    http://expert.csdn.net/Expert/topic/2921/2921602.xml?temp=.5679438
      

  9.   

    不行啊... hnhb(不死鸟),你的只能按升序排列啊,而且点多次后,不断的增加▲...有问题!
      

  10.   

    hnhb(不死鸟),你好,第一次点击能排序,点第二次时就不排序了,为什么?
    而且,▼和▲不断增加,怎么处理?
      

  11.   

    另外,你说先设一个全局变量FSort:String;,该语句写在什么位置,点第二次时不排序是否与该变量有关?