DBGridの列タイトルをクリックでソートさせるには?


たから  2006-11-09 12:03:38  No: 23836  IP: 192.*.*.*

ClientDataSet1.IndexFieldNames:= Column.FieldName;
でうまくソートはできてるのですが、クリックするごとに、昇順、降順と繰り返してソートさせたいのですが、どのように書けばよいのでしょうか?
AddIndexを使えばよいような気がしますが具体的にどのように書けばよいのかわかりません。どなた様かよろしくお願いします。

編集 削除
Basser  2006-11-09 14:06:20  No: 23837  IP: 192.*.*.*

処理の流れとしては下記のような感じでいいのでは?

procedure TForm1.DBGrid1TitleClick(Column: TColumn);
const
  SortColumn: TColumn = nil;
  SortOrder : Byte = 0;
begin
  if (SortColumn = Column) then
    SortOrder:= SortOrder shl 4
  else
  begin
    SortColumn:= Column;
    SortOrder := 1;
  end;

  case SortOrder of
    $01: (* 昇順処理 *);
    $10: (* 降順処理 *);
  else
    // ソート解除
    ClientDataSet1.IndexFieldNames:= '';
    SortColumn:= nil;
    SortOrder := 0;
  end;
end;

編集 削除