Um recurso muito interessante e simples de ser implantado é a ordenação de registro utilizando um DBGrid com ClientDataSet.

Abaixo segue o procedimento completo que deve ser descrito para que o recurso funcione e você encante o seu cliente com mais este recurso em seu sistema:

Primeiro onde o procedimento deverá ser chamado: Evento OnTitleClick do DBGrid
procedure TfrmLancamentos.dbgrdLancamentosTitleClick(Column: TColumn);
begin
  cdsSetOrderDBGrid( cdsCadastro, dbgrdLancamentos, Column );
end;

Agora todo o procedimento de ordenação:
procedure TfrmLancamentos.cdsSetOrderDBGrid(var cds:TClientDataSet;
  var DBG: TDBGrid; Column : TColumn);
const
  idxDefault = ‘DEFAULT_ORDER’;
var
  strColumn : string;
  i         : integer;
  bolUsed   : boolean;
  idOptions : TIndexOptions;
begin
 strColumn := idxDefault;

 if Column.Field.FieldKind in [fkCalculated, fkLookup, fkAggregate] then
    exit;

 if Column.Field.DataType in [ftBlob, ftMemo] then
    exit;

 for I := 0 to DBG.Columns.Count – 1 do
 begin
   DBG.Columns[I].Title.Font.Color := clBlack;
 end;

 DBG.Columns[Column.Index].Title.Font.Color := clRed;

 bolUsed := (Column.Field.FieldName = CDS.IndexName);

 CDS.IndexDefs.Update;
 for I := 0 to CDS.IndexDefs.Count – 1 do
 begin
   if CDS.IndexDefs.Items[I].Name = Column.Field.FieldName then
   begin
     strColumn := Column.Field.FieldName;
     case (CDS.IndexDefs.Items[I].Options = [ixDescending]) of
      True : idOptions := [];
      False : idOptions := [ixDescending];
     end;
   end;
 end;

 if (strColumn = idxDefault) or (bolUsed) then
 begin
  if bolUsed then
    CDS.DeleteIndex(Column.Field.FieldName);
  try
    CDS.AddIndex( Column.Field.FieldName,
                  Column.Field.FieldName,
                  idOptions,
                  ”,
                  ”,
                  0);
    strColumn := Column.Field.FieldName;
  except
    if bolUsed then
      strColumn := idxDefault;
  end;
 end;

 try
   CDS.IndexName := strColumn;
 except
   CDS.IndexName := idxDefault;
 end;

end;

Boa implementação a todos…