windows资源管理器的详细列表,在表格中点击上面的标题,就会自动的排序(升序或者降序)。我也想在dbgrid中实现这个功能。最好发一份原代码。
  多谢
                    [email protected]

解决方案 »

  1.   

    Ehlib比较容易实现先设一个全局变量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;
      

  2.   

    或者delphi自带的dbgrid控件如何实现啊
      

  3.   

    自己写代码控制SQL,很简单的;
      

  4.   

    procedure TForm1.wwDBGrid1TitleClick(Column: TColumn);
    var
      SortStr:string;
    begin
       SortStr:=AFieldName+' ASC';
       ADOQuery1.Sort :=SortStr;
    end;
      

  5.   

    DBGrid中的事件DBGrid1TitleClick写事件即可
      

  6.   

    在DBGrid1TitleClick事件中写
    Sort := column. fieldname + ' DESC';
    Column.Title.SortMarker := smDownEh;
      

  7.   

    我使用得是TWWDBGrid控件
    如何实现
      

  8.   

    procedure TForm1.DBGrid1TitleClick(Column: TColumn);
    begin
    //添加代码
    end;
      

  9.   

    Str:='select * from tablename ORDER BY'+str1+'str2';
      

  10.   

    FSort:string;
    FColumn:Tcolumn;procedure TForm1.DBGrid1TitleClick(Column: TColumn);begin   if Fcolumn=nil then
       begin
          adoquery1.Sort:=Column.FieldName + ' ASC';
          Fcolumn:=column;
          Column.Title.Caption:=column.Title.Caption+'▲';
          Fsort:='ASC';
          exit;
        end ;  if Fcolumn<>column  then
      begin
        adoquery1.Sort:=column.FieldName +' ASC';
        column.Title.Caption:=column.Title.Caption+'▲';
        Fcolumn.Title.Caption :=copy(Fcolumn.Title.caption,1,length(Fcolumn.Title.caption)-2);
        Fcolumn:=column;
        Fsort:='ASC';
      end
      else
      if fsort='ASC' then
      begin
        adoquery1.Sort:=Column.FieldName + ' DESC';
        Fcolumn.Title.Caption :=copy(Fcolumn.Title.caption,1,length(Fcolumn.Title.caption)-2);
        Column.Title.Caption:=column.Title.Caption+'▼';
        Fcolumn:=column;
        Fsort:='DESC';  end
      else
      begin
        adoquery1.Sort:=column.FieldName +' ASC';    Fcolumn.Title.Caption :=copy(Fcolumn.Title.caption,1,length(Fcolumn.Title.caption)-2);
        column.Title.Caption:=column.Title.Caption+'▲';
        Fcolumn:=column;
        Fsort:='ASC';
      end;
    end;