ClientDataSet1.IndexFieldNames:= Column.FieldName;
でうまくソートはできてるのですが、クリックするごとに、昇順、降順と繰り返してソートさせたいのですが、どのように書けばよいのでしょうか?
AddIndexを使えばよいような気がしますが具体的にどのように書けばよいのかわかりません。どなた様かよろしくお願いします。
処理の流れとしては下記のような感じでいいのでは?
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;
ツイート | ![]() |