Indice Ascedente/Descendente

Delphi

18/02/2005

Tenho um componente ClientDataSet que alimenta um DBGrid e consigo indexar as informações do ClientDataSet a partir do da coluna selecionada, mas eu gostaria de dar a opção quando o usuário clicar na coluna se ele quer em ordem ascendente ou descente.
Como eu faço isto???

Desde já agradeço a ajuda de todos.


Andre_luis_c

Andre_luis_c

Curtidas 0

Respostas

Massuda

Massuda

18/02/2005

...mas eu gostaria de dar a opção quando o usuário clicar na coluna se ele quer em ordem ascendente ou descente. Como eu faço isto???
Não sei se é isso que você queria, mas pode fazer como no Windows Explorer em modo Detalhes. Quando clica pela primeira vez numa coluna ordena ascendente, os cliques seguintes alternam entre ascendente/descendente, até você clicar em outra coluna.


GOSTEI 0
Andre_luis_c

Andre_luis_c

18/02/2005

Como eu faço para alternar indexação Ascendente/Descendente. no primeiro clique na coluna eu orderno ascendente no segundo clique descendente. No DBGrid.


GOSTEI 0
Massuda

Massuda

18/02/2005

BD não é meu forte, por isso eu não saberia dizer de modo correto como mudar a indexação do ClientDataSet. Mas, quanto ao código da interface com o usuário, ele poderia ser mais ou menos assim:
type
  TSeuForm = class(...
    ...
    procedure SeuGridTitleClick(Column: TColumn);
  private
    ColunaOrdenada: TColumn;
    ColunaAscendente: Boolean;

...

procedure TSeuForm.SeuGridTitleClick(Column: TColumn);
begin
  if Column = ColunaOrdenada then
    ColunaAscendente := not ColunaAscendente;
  else begin
    ColunaOrdenada := Column;
    ColunaAscendente := True;
  end;

  if ColunaAscendente then
    // ordenar a coluna ordem ascendente
  else
    // ordenar a coluna ordem descendente
end;



GOSTEI 0
POSTAR