Fórum Grid com Seta(Parecido com o Windows Explorer) #299688
17/10/2005
0
Ae galera, tudo certo?
Alguém sabe como eu faço pra colocar setinha no DBGrid para ficar parecido com o Windows Explorer. Quero o seguinte, clicar no titulo da coluna e ele organizar e colocar a setinha. Vai ai a image de como eu gostaria que ficasse:
[URL=http://imageshack.us][img:99f7208cfa]http://img352.imageshack.us/img352/3544/grid0dy.jpg[/img:99f7208cfa][/URL]
Olhem a setinha no NOME...
Se possivel sem componentes terceiros..
vlw
Alguém sabe como eu faço pra colocar setinha no DBGrid para ficar parecido com o Windows Explorer. Quero o seguinte, clicar no titulo da coluna e ele organizar e colocar a setinha. Vai ai a image de como eu gostaria que ficasse:
[URL=http://imageshack.us][img:99f7208cfa]http://img352.imageshack.us/img352/3544/grid0dy.jpg[/img:99f7208cfa][/URL]
Olhem a setinha no NOME...
Se possivel sem componentes terceiros..
vlw
Lucianobarreto
Curtir tópico
+ 0
Responder
Post mais votado
17/10/2005
Cara eu faço + ou - assim:
1º crio uma variavel onde guardo o tipo de ordenação (Asc ou Desc) e uma outra para guardar o campo que estou ordenando.
2º Coloco as imagens em um imagelist
3º no OnDrawCollun do Dbgrid:
3º no OnTitleClik
Ve se te ajuda em algo, qualquer coisa, da um toque.
1º crio uma variavel onde guardo o tipo de ordenação (Asc ou Desc) e uma outra para guardar o campo que estou ordenando.
2º Coloco as imagens em um imagelist
3º no OnDrawCollun do Dbgrid:
Application.processmessages;
if dbGrid.Columns[Column.Index].Field.Origin = sOrderByCampo then
begin
{** Exibe imagem no título da coluna seleciona indicando a ordem do OrderBy}
if UpperCase(sOrderByOrdem) = ´ASC´
then ImageList.Draw(dbGrid.Canvas, Rect.Left + (Column.Width - 19), 1, 27)
else ImageList.Draw(dbGrid.Canvas, Rect.Left + (Column.Width - 19), 1, 26);
end;
3º no OnTitleClik
if sOrderByCampo = Column.Field.Origin
then
if sOrderByOrdem = ´Asc´ then sOrderByOrdem:= ´Desc´ else sOrderByOrdem:= ´Asc´;
{** Define o campo que será usado para o OrderBy}
sOrderByCampo := Column.Field.Origin;
{** Altera o Sql da tabela com os padrões de OrderBy conforme o campo selecionado}
if ibQuery <> nil
then
begin
Application.ProcessMessages;
if ibQuery.Active then ibQuery.Close;
ibQuery.SQL[ibQuery.SQL.Count -1]:= ´order by ´+sOrderByCampo + ´ ´ + sOrderByOrdem;
if not ibQuery.Prepared then ibQuery.Prepare;
ibQuery.open;
end;
Ve se te ajuda em algo, qualquer coisa, da um toque.
Steve_narancic
Responder
Gostei + 1
Mais Posts
17/10/2005
Lucianobarreto
Opa, deu certinho...
vlw
vlw
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)