Olá, neste artigo mostrarei um forma bastante interessante de trabalhar com as colunas do DBGrid. Faremos a troca de posição das colunas usando o evento onTitleClick do DBGrid.
Quando o usuário clicar em uma coluna esta passará a ser a primeira coluna e a primeira trocará de lugar com a coluna clicada. A primeira coluna poderia ser usada para filtrar e/ou ordenar a tabela e sendo a coluna 0 (zero) fica mais fácil para identificar por qual coluna nossa table está ordenada/filtrada.
Desenhando o projeto
O design para este exemplo é bem compacto. Insira um TTable, um DataSource e um DBGrid. Altere suas propriedades conformes as tabelas abaixo. Sua tela deve se parecer com a Figura 1.
Tabela 3. Propriedades do TDbGrid
Coluna colorida
Uma coisa que uso com bastante freqüência é colorir a primeira coluna, assim fica ainda mais fácil identificar por qual coluna o filtro/ordenação será feito. Para isso:
Clique duas vezes no DBGrid, adicione os todos campos. Em seguida selecione o primeiro campo, referente a primeira coluna, e mude a propriedade Color para clInfoBk ou uma cor de sua preferência.
Figura 1. Legenda explicativa da figura
Programação
Você verá que a programação não exige alto conhecimento. Apenas pegamos o nome da coluna selecionada e seu index. Em seguida “dizemos” que o FieldName da colunca selecionada é igual ao FieldName da coluna 0(zero), ou seja, o primeiro campo. Agora basta igualar o FieldName da coluna zero ao FieldName da coluna selecionada. Veja a Listagem 1.
Listagem 1. Descrição da listagem
procedure TForm1.DBGrid1TitleClick(Column: TColumn);
var
nmColSel: string;
idColSel: Integer;
begin
nmColSel := Column.FieldName;
idColSel := Column.Index;
with DBGrid1 do
begin
Columns[idColSel].FieldName := Columns[0].FieldName;
Columns[0].FieldName := nmColSel;
end;
end;
Conclusões
Neste artigo aprendemos a trocar a coluna de um DBGrid em runtime e tornando sua visualização mais nítida.
Por Adriano Santos
Adriano Santos ([email protected]) é desenvolvedor Delphi desde 1998. Professor e programador PHP. Bacharel em Comunicação Social pela Universidade Cruzeiro do Sul, SP. É colunista e membro da Comissão Editorial da revista ClubeDelphi.
Conheça nosso parceiro: