John Kaster disponibilizou uma grid descendente da DBGrid padrão do Delphi com alguns recursos bem legais para quem usa ClientDataSet. A TClientDataSetGrid permite ordenar o ClientDataSet em memória quando se clica no cabeçalho da coluna. Até aqui nada demais. O que é legal mesmo é que se você clicar em outras colunas mantendo o Shift apertado, ele vai ordenando na sequência, ou seja, clicou na Cidade do cliente, depois no Nome mantendo o Shift apertado, ela ordena pela Cidade e depois por Nome, e coloca setas com números nas colunas, indicando a direção de cada ordenação (crescente ou decrescente) e a ordem das colunas. Bem interessante.