Glyph na Celula do DBGrid

Delphi

07/05/2004

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


Kamello

Kamello

Curtidas 0

Respostas

Edkardoso

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


GOSTEI 0
Kamello

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;


GOSTEI 0
POSTAR