Pular para o conteúdo principal

Postagens

Mostrando postagens com o rótulo dbgrid

Colocar imagem em campo do dbGrid

Considerando que minha pasta de ícones esta no mesmo nível da pasta de minha aplicação, e que eu tenho em meu banco de dados o nome do arquivo isso funciona. Procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); var vl_icone : ticon; vl_fixo : TRect; begin vl_fixo := Rect; if (Column.Field = ClientDataSet1cone) and (ClientDataSet1NOME_ICONE.AsString '') then begin vl_icone := Ticon.Create; vl_icone.Height := 10; try vl_icone.LoadFromFile(('..\Icones\'+ClientDataSet1NOME_ICONE.AsString)); DBGrid1.Canvas.StretchDraw(vl_fixo, vl_icone); finally vl_icone.Free; end; end; end;

dbGrid zebrado (Delphi)

Quando utilizamos dbGrid e este recebe muitos registros fica dificil ler toda a linha, principalmente se possuimos um grande número de colunas, um recurso que podemos lançar mão para ao menos amenizar essa situação é o efeito "zebrado", onde temos linhas com cores diferentes, na verdade duas cores diferentes que se intercalam. Então vamos ao exemplo, no evento OnDrawColumnCell: if odd (ClientDataSet4.RecNo) then DBGrid1.Canvas.Brush.Color:= clmenubar else DBGrid1.Canvas.Brush.Color:= clCream; TDbGrid(Sender).Canvas.font.Color:= clBlack; if gdSelected in State then with (Sender as TDBGrid).Canvas do begin Brush.Color := clmoneygreen; FillRect(Rect); Font.Style := [fsbold] end; TDbGrid(Sender).DefaultDrawDataCell(Rect, TDbGrid(Sender).columns[datacol].field, State);