Glyph na Celula do DBGrid
Olá Pessoal
Alguem sabe e me ajuda!
Quero colocar glyphs nas celulas do dbgrid, sempre na frente dos valores, eu ateh consegui colocar, mas sem os respectivos valores
Queria assim, tenho 3 campos (nome, data, valor) :
[glyph] Joao da silva | [glyph] 23/12/2004 | [glyph]50,00
Alguem conhece algo ou um componente que eu posso atribuir um image list e indexar uma imagem para cada coluna (celulas) ?
valeu
Alguem sabe e me ajuda!
Quero colocar glyphs nas celulas do dbgrid, sempre na frente dos valores, eu ateh consegui colocar, mas sem os respectivos valores
Queria assim, tenho 3 campos (nome, data, valor) :
[glyph] Joao da silva | [glyph] 23/12/2004 | [glyph]50,00
Alguem conhece algo ou um componente que eu posso atribuir um image list e indexar uma imagem para cada coluna (celulas) ?
valeu
Kamello
Curtidas 0
Respostas
Edkardoso
07/05/2004
Amigo,
para colocar um desenho em cada célula eu nunca tentei. Mas para toda coluna, segue aí a rotina exemplo, quem sabe assim te ajuda.
// evento OnDrawColumnCell do Dbgrid
if colum.field=Nome then
begin
dbgrid1.canvas.FillRect(Rect);
Dbrgrid1.DefaultDrawDataCell(rect,Column.Field,State);
ImageList1.Draw(Dbgrid1.Canvas,Rect.Left+16,Rect.Top+1,3);
end;
Valeu ?? Me dê noticias se deu certo. E caso consiga aplicar para cada célula, pf passe-me a rotina.
Espero ter contribuído para o seu sucesso!
Abraços,
Eduardo
para colocar um desenho em cada célula eu nunca tentei. Mas para toda coluna, segue aí a rotina exemplo, quem sabe assim te ajuda.
// evento OnDrawColumnCell do Dbgrid
if colum.field=Nome then
begin
dbgrid1.canvas.FillRect(Rect);
Dbrgrid1.DefaultDrawDataCell(rect,Column.Field,State);
ImageList1.Draw(Dbgrid1.Canvas,Rect.Left+16,Rect.Top+1,3);
end;
Valeu ?? Me dê noticias se deu certo. E caso consiga aplicar para cada célula, pf passe-me a rotina.
Espero ter contribuído para o seu sucesso!
Abraços,
Eduardo
GOSTEI 0
Kamello
07/05/2004
Ae Eduardo eu resolvi assim !!! :P
// LINHAS COM CORES
if MyQrySem_CONCLUIDO.Value = ´SIM´ then begin
if gdSelected in State then
DBGrid1.Canvas.Brush.Color:= $00FFE8B7
else
DBGrid1.Canvas.Brush.Color:= $00FFF5E1;
end else begin
if gdSelected in State then
DBGrid1.Canvas.Brush.Color:= $00C6C6FF
else
DBGrid1.Canvas.Brush.Color:= $00E8E8FF;
end;
Dbgrid1.DefaultDrawDataCell(Rect, dbgrid1.columns[datacol].field, State);
DBGrid1.Canvas.Font.Color := clBlack;
if Column.Field = MyQrySEM_VALOR then
DBGrid1.Canvas.TextOut(Rect.Left,Rect.Top+2,´ ´+FormatFloat(´#,0.00´,Column.Field.AsFloat))
else
DBGrid1.Canvas.TextOut(Rect.Left,Rect.Top+2,´ ´+Column.Field.AsString);
// IMagens
if MyQry.RecordCount <> 0 then begin
if column.Field=MyQrySEM_DATALEVANTAMENTO then
ImageList1.Draw(dbGrid1.Canvas,Rect.Left+1, Rect.Top,0);
if column.Field=MyQrySEM_DATADOCUMENTO then
ImageList1.Draw(dbGrid1.Canvas,Rect.Left+1, Rect.Top,0);
if column.Field=MyQrySEM_DATAVENCIMENTO then
ImageList1.Draw(dbGrid1.Canvas,Rect.Left+1, Rect.Top,0);
if column.Field=MyQryser_nome then
ImageList1.Draw(dbGrid1.Canvas,Rect.Left+1, Rect.Top,1);
if column.Field=MyQryagt_nome then
ImageList1.Draw(dbGrid1.Canvas,Rect.Left+1, Rect.Top,2);
if column.Field=MyQrySEM_VALOR then
ImageList1.Draw(dbGrid1.Canvas,Rect.Left+1, Rect.Top,3);
if column.Field=MyQrySEM_CONCLUIDO then begin
if MyQrysem_concluido.Value = ´SIM´ then
ImageList1.Draw(dbGrid1.Canvas,Rect.Left+1, Rect.Top,4)
else
ImageList1.Draw(dbGrid1.Canvas,Rect.Left+1, Rect.Top,5);
end;
if column.Field=MyQrySEM_PAGO then begin
if MyQrySEM_PAGO.Value = ´SIM´ then
ImageList1.Draw(dbGrid1.Canvas,Rect.Left+1, Rect.Top,4)
else
ImageList1.Draw(dbGrid1.Canvas,Rect.Left+1, Rect.Top,5);
end;
if column.Field=MyQrySEM_OBSERVACAO then
ImageList1.Draw(dbGrid1.Canvas,Rect.Left+1, Rect.Top,6);
end;
// LINHAS COM CORES
if MyQrySem_CONCLUIDO.Value = ´SIM´ then begin
if gdSelected in State then
DBGrid1.Canvas.Brush.Color:= $00FFE8B7
else
DBGrid1.Canvas.Brush.Color:= $00FFF5E1;
end else begin
if gdSelected in State then
DBGrid1.Canvas.Brush.Color:= $00C6C6FF
else
DBGrid1.Canvas.Brush.Color:= $00E8E8FF;
end;
Dbgrid1.DefaultDrawDataCell(Rect, dbgrid1.columns[datacol].field, State);
DBGrid1.Canvas.Font.Color := clBlack;
if Column.Field = MyQrySEM_VALOR then
DBGrid1.Canvas.TextOut(Rect.Left,Rect.Top+2,´ ´+FormatFloat(´#,0.00´,Column.Field.AsFloat))
else
DBGrid1.Canvas.TextOut(Rect.Left,Rect.Top+2,´ ´+Column.Field.AsString);
// IMagens
if MyQry.RecordCount <> 0 then begin
if column.Field=MyQrySEM_DATALEVANTAMENTO then
ImageList1.Draw(dbGrid1.Canvas,Rect.Left+1, Rect.Top,0);
if column.Field=MyQrySEM_DATADOCUMENTO then
ImageList1.Draw(dbGrid1.Canvas,Rect.Left+1, Rect.Top,0);
if column.Field=MyQrySEM_DATAVENCIMENTO then
ImageList1.Draw(dbGrid1.Canvas,Rect.Left+1, Rect.Top,0);
if column.Field=MyQryser_nome then
ImageList1.Draw(dbGrid1.Canvas,Rect.Left+1, Rect.Top,1);
if column.Field=MyQryagt_nome then
ImageList1.Draw(dbGrid1.Canvas,Rect.Left+1, Rect.Top,2);
if column.Field=MyQrySEM_VALOR then
ImageList1.Draw(dbGrid1.Canvas,Rect.Left+1, Rect.Top,3);
if column.Field=MyQrySEM_CONCLUIDO then begin
if MyQrysem_concluido.Value = ´SIM´ then
ImageList1.Draw(dbGrid1.Canvas,Rect.Left+1, Rect.Top,4)
else
ImageList1.Draw(dbGrid1.Canvas,Rect.Left+1, Rect.Top,5);
end;
if column.Field=MyQrySEM_PAGO then begin
if MyQrySEM_PAGO.Value = ´SIM´ then
ImageList1.Draw(dbGrid1.Canvas,Rect.Left+1, Rect.Top,4)
else
ImageList1.Draw(dbGrid1.Canvas,Rect.Left+1, Rect.Top,5);
end;
if column.Field=MyQrySEM_OBSERVACAO then
ImageList1.Draw(dbGrid1.Canvas,Rect.Left+1, Rect.Top,6);
end;
GOSTEI 0