請問如何用dbgrid控件实现"点击标题栏自动排序功能"

解决方案 »

  1.   

    有关双击dbgrid排序的问题,示例代码如下:procedure TForm1.DBGrid1TitleClick(Column: TColumn);
    var
     temp, title: string;
    begin
     temp := Column.FieldName;
     qusp.Close;
     if Column.Index <> lastcolumn then
     begin
       if (Pos('↑', DBGrid1.Columns[LastColumn].Title.Caption) > 0) or (Pos('↓', DBGrid1.Columns[LastColumn].Title.Caption) > 0) then
         DBGrid1.Columns[LastColumn].Title.Caption := Copy(DBGrid1.Columns[LastColumn].Title.Caption, 3, Length(DBGrid1.Columns[LastColumn].Title.Caption) - 2);
       qusp.Sql[icount] := 'order by ' + temp + ' asc';
       DBGrid1.Columns[Column.Index].Title.Caption := '↑' + DBGrid1.Columns[Column.Index].Title.Caption;
       lastcolumn := column.Index;
     end
     else
     begin
       LastColumn := Column.Index;
       title := DBGrid1.Columns[LastColumn].Title.Caption;
       if Pos('↑', title) > 0 then
       begin
         qusp.Sql[icount] := 'order by ' + temp + ' desc';
         Delete(title, 1, 2);
         DBGrid1.Columns[LastColumn].Title.Caption := '↓' + title;
       end
       else if Pos('↓', title) > 0 then
       begin
         qusp.Sql[icount] := 'order by ' + temp + ' asc';
         Delete(title, 1, 2);
         DBGrid1.Columns[LastColumn].Title.Caption := '↑' + title;
       end
       else
       begin
         qusp.Sql[icount] := 'order by ' + temp + ' asc';
         DBGrid1.Columns[LastColumn].Title.Caption := '↑' + title;
       end;
     end;
     qusp.Open;
    end;  
      

  2.   

    如果我是用BDE連數據庫的,且dbgrid用的是第三方控件ip3000中的wwdbgrid和wwquery該怎么處理啊?
      

  3.   

    用DBGridEh
    Users EhlibAdo;
    设置DBGridEh.dghAutoSortMarking属性为true
    双击DBGridEh,设置希望排序的Column的TitleButton属性为true
      

  4.   

    樓上的ron_xin(星雨) 我們公司不能用DBGridEh
    只是用BDE連數據庫的,且dbgrid用的是第三方控件ip3000中的wwdbgrid和wwquery象這情況我該怎么處理啊?
      

  5.   

    用DBGridEh3.6的版本
    Users DBClient;
    设置DBGridEh.OptionsEh:dghAutoSortMarking,dghMultiSortMarking属性为true
    双击DBGridEh,设置希望排序的Column的TitleButton属性为true
      

  6.   

    用CXGRID吧。上面直接有,连属性都不用改