Este es mi caso, como ordeno desc o asc/
procedure TTIPO_SERVICIO_FRM.DefineOrden(str :string);
var i : integer;
M : TSortMarker;
begin
i := 0;
while str <> Campos[i] do inc(i);
DM1.TIPOS_SERVICIOS.Close;
If (str = Campos[i]) and (str <> 'ACTIVO') Then
begin
if Orden[i] = smNone then
begin
M := smDown;
DM1.TIPOS_SERVICIOS.IndexName := Campos[i];
end;
if Orden[i] = smNone then
begin
M := smUp;
DM1.TIPOS_SERVICIOS.IndexName := Campos[i];
end;
end;
orden[i] := M;
DM1.TIPOS_SERVICIOS.Open;
end;
Código Delphi
[-]
procedure TTIPO_SERVICIO_FRM.DefineOrden(str :string);
var i : integer;
M : TSortMarker;
begin
i := 0;
while str <> Campos[i] do inc(i);
DM1.TIPOS_SERVICIOS.Close;
If (str = Campos[i]) and (str <> 'ACTIVO') Then
begin
if Orden[i] = smNone then
begin
M := smDown;
DM1.TIPOS_SERVICIOS.IndexName := Campos[i];
end;
if Orden[i] = smNone then
begin
M := smUp;
DM1.TIPOS_SERVICIOS.IndexName := Campos[i];
end;
end;
orden[i] := M;
DM1.TIPOS_SERVICIOS.Open;
end;