Imagens no título da coluna do grid

08/03/2006

Boa tarde!!!!

No meu DBGrid coloquei a opcao de o usuario clicar no titulo do grid e ordenar na ascendente e shift+click na descendente o q eu pretendo é qdo clicar no titulo ele ordene e coloque uma imagem de ordenação ao lado do titulo da coluna clicada.
Alguem tem alguma dica pra isto?
Desde ja agradeço a todos.

Renato


Renato.pavan

Respostas

09/03/2006

Renato.pavan

Up...


Responder Citar

09/03/2006

Adriano Santos

Veja:

Estou usando um TImageList com as imagens que vão ficar no título, se quiser eu disponibilizo o exemplo completo pra você.

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
  Bmp: TBitMap;
  R: TRect;
  function GetColsWidth: Integer;
  var
    I: Integer;
  begin
    Result := 0;
    for I := 0 to Column.Index do
    begin
      Result := Result + TDBGrid(Sender).Columns.Items[I&93;.Width;
    end;
    Result := Result + 10 + (Column.Index);
  end;
begin
  {Aqui fazemos o acesso aos membros protegidos da classe TDBGrid}
  with TDBGrid(Sender) do
  begin
    try
      Bmp := TBitMap.Create;
      with Bmp do
      begin
        {configuramos que a cor transparente será branco}
        TransparentColor := clWhite;
        Transparent := True;
        TransparentMode := tmAuto
      end;
      ImageList1.GetBitmap(0, Bmp);
      {Detectamos se a altura do título é suficiente para por a imagem}
      if RowHeights[0&93; < Bmp.Height + 4 then
        RowHeights&91;0&93; := Bmp.Height + 4;

      {Desenhamos a imagem no Título}
      Canvas.Draw((GetColsWidth - Bmp.Width), (RowHeights&91;0&93; - Bmp.Height) div 2,
        Bmp);
    finally
      {Liberamos a variável Bmp da memória}
      Bmp.Free;
    end;
  end;
end;



Responder Citar

09/03/2006

Paullsoftware

Estou usando um TImageList com as imagens que vão ficar no título, se quiser eu disponibilizo o exemplo completo pra você.

eu gostaria desse exemplo, pode mandar pro meu email! :lol:


Responder Citar

09/03/2006

Adriano Santos

[quote:d796e9e8e9]Estou usando um TImageList com as imagens que vão ficar no título, se quiser eu disponibilizo o exemplo completo pra você.

eu gostaria desse exemplo, pode mandar pro meu email! :lol:[/quote:d796e9e8e9]

Vamos fazer diferente, acho que esse tópico vai crescer com pedidos de ´manda pra mim´, então já vou disponibilizar no meu servidor.
Clique para fazer o [url=http://www.doiscliques.com/pub/dbgrid_img.zip]download[/url].


Responder Citar

09/03/2006

Martins

[quote][quote:b8b669cd96]Estou usando um TImageList com as imagens que vão ficar no título, se quiser eu disponibilizo o exemplo completo pra você.

eu gostaria desse exemplo, pode mandar pro meu email! :lol:[/quote:b8b669cd96]

Vamos fazer diferente, acho que esse tópico vai crescer com pedidos de ´manda pra mim´, então já vou disponibilizar no meu servidor.
Clique para fazer o [url=http://www.doiscliques.com/pub/dbgrid_img.zip]download[/url].[/quote:b8b669cd96]

Nobre [b:b8b669cd96]Adriano Santos[/b:b8b669cd96], é assim q tem q ser, pena q nem todos q pretendem disponibilizar códigos exemplos, tem servidores para hospedá-los, mas vc mandou bem, assim evita-se o tão conhecido ´manda para mim´.

Acho q o colega quer colocar uma seta por exemplo ou letras de A-Z / Z-A indicando a ordem Crescente / Decrescente.

valew!!! :wink:


Responder Citar

09/03/2006

Adriano Santos

[quote:0d3ed8c623=´Adriano Santos´][quote:0d3ed8c623=´PaullSoftware´][quote:0d3ed8c623]Estou usando um TImageList com as imagens que vão ficar no título, se quiser eu disponibilizo o exemplo completo pra você.

eu gostaria desse exemplo, pode mandar pro meu email! :lol:[/quote:0d3ed8c623]

Vamos fazer diferente, acho que esse tópico vai crescer com pedidos de ´manda pra mim´, então já vou disponibilizar no meu servidor.
Clique para fazer o [url=http://www.doiscliques.com/pub/dbgrid_img.zip]download[/url].[/quote:0d3ed8c623]

Nobre [b:0d3ed8c623]Adriano Santos[/b:0d3ed8c623], é assim q tem q ser, pena q nem todos q pretendem disponibilizar códigos exemplos, tem servidores para hospedá-los, mas vc mandou bem, assim evita-se o tão conhecido ´manda para mim´.

Acho q o colega quer colocar uma seta por exemplo ou letras de A-Z / Z-A indicando a ordem Crescente / Decrescente.

valew!!! :wink:[/quote:0d3ed8c623]

Opa [b:0d3ed8c623]Martins[/b:0d3ed8c623] obrigado pelo Nobre, :P.
O exemplo que eu disponibilizei não está completo, apenas mostra como colocar a figura no título, o restante precisa ser adaptado as necessidades do colega que pediu a ajuda ok???

[]s


Responder Citar

09/03/2006

Renato.pavan

Adriano, muito obrigado pelo exemplo, vou analizar e adaptar as minhas necessidades.
Valeu.

Renato


Responder Citar

09/03/2006

Adriano Santos

Adriano, muito obrigado pelo exemplo, vou analizar e adaptar as minhas necessidades. Valeu. Renato


Ok, se ainda precisar de algo pode dar um toque.


Responder Citar

09/03/2006

Renato.pavan

Adriano, eu não estou conseguindo associar a imagem ao evento click do titulo da coluna, o exemplo q vc me mandou assim q o form é aberto ele ja coloca a figura, eu gostaria de colocar a figura somente qdo a coluna for clicada e na coluna clicada, sera q vc teria alguma sugestão?
Desde ja agradeço sua atenção.

Renato.


Responder Citar