Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Imagem no DBGrid, ora funciona, ora não


Fuzileir0

Pergunta

Galera, estou com um problema aqui...

Fiz um código pra dependendo da condição, uma imagem é adicionada ao dbgrid. Beleza. Se é só o código da imagem, ela funciona.

Agora, addicionei um código pra modificar a cor da linha selecionada e outro código pra variar as cores da linha (pra facilitar leitura)... Mas com esses códigos, as imagens não aparecem... agora se eu tiro esses códigos, as imagens voltam, mas o dbgrid fica sem cor!

help!

procedure TfrmPrincipal.gridTarefasDrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);

var
bitmap : TBitmap;
fixRect : TRect;
bmpWidth : integer;
imgIndex : integer;

grid : TDBGrid;
row : integer;
begin


  grid := sender as TDBGrid;
  row := gridTarefas.DataSource.DataSet.RecNo;

  if Odd(row) then
    gridTarefas.Canvas.Brush.Color := $00E6E6E6
  else
    gridTarefas.Canvas.Brush.Color := $00D8D8D8;

  if (gdselected in State) then
  begin
    gridTarefas.Canvas.Font.Color := clWhite;
    gridTarefas.Canvas.brush.color := clMedGray;
  end;



  // início da programacao para adicionar imagem (ATRASADO OU NÃO)
  fixRect := Rect;
  if Column.Index = 0 then
  begin
    if ((dm.qryGrid.FieldByName('fim').AsDateTime - dm.qryGrid.FieldByName('inicio').AsDateTime) <= 3) then
     imgIndex := 0
      else
       imgIndex := 1;
    bitmap := TBitmap.Create;
    try
      il.GetBitmap(imgIndex,bitmap);
      bmpWidth := (Rect.Bottom - Rect.Top);
      fixRect.Right := Rect.Left + bmpWidth;
      gridTarefas.Canvas.StretchDraw(fixRect,bitmap);
    finally
      bitmap.Free;
    end;
    fixRect := Rect;
    fixRect.Left := fixRect.Left + bmpWidth;
  end;
// fim da programacao para adicionar imagem (ATRASADO OU NÃO)

//  gridTarefas.DefaultDrawing := true;
  gridTarefas.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;

Código indentado e colorido no pastebin: aqui.

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...