Imagem no Titulo - Dbgrid
06/12/2005
0
olá, como colocar uma imagem no titulo do dbgrid ?
tipo:
qdo se esta no WindowsExplorer, e se clica no titulo na relacao de (arquivos, pastas, ect), e o mesmo é ordenado, aparecendo uma imagem de uma seta para baixou ou para cima.
Obrigado., by.
tipo:
qdo se esta no WindowsExplorer, e se clica no titulo na relacao de (arquivos, pastas, ect), e o mesmo é ordenado, aparecendo uma imagem de uma seta para baixou ou para cima.
Obrigado., by.
Pedih
Curtir tópico
+ 0
Responder
Posts
14/12/2005
Adriano Santos
Peguei seu tópico por acaso aqui e tinha sua solução.
Coloca um TImageList na tela e testa o exemplo que mandei.
Declare a Type abaixo do uses da unit.
Coloca um TImageList na tela e testa o exemplo que mandei.
Declare a Type abaixo do uses da unit.
{Classe responsável por obter novas(membros protegidos) propriedades do DBGrid} type TDBGrid = class(DBGrids.TDBGrid);
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].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] < Bmp.Height + 4 then RowHeights[0] := Bmp.Height + 4; {Desenhamos a imagem no Título} Canvas.Draw((GetColsWidth - Bmp.Width), (RowHeights[0] - Bmp.Height) div 2, Bmp); finally {Liberamos a variável Bmp da memória} Bmp.Free; end; end; end;
Responder
Clique aqui para fazer login e interagir na Comunidade :)