FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Imagen en un dbgrid...
Quiero que en la primer columna de un dbgrid me aparesca una imagen pero solo en la columna del campo seleccionado, esto es, si me desplazo con el teclado en el dbgrid la imagen solo aparecera en la primer columna de la fila seleccionada.
Ya he intentado muchas cosas y no me sale. =/ Alguna ayuda? Gracias. |
#2
|
||||
|
||||
Cita:
// Saludos |
#3
|
|||
|
|||
Esto es lo que hago:
if not (gdSelected in State) then begin if Odd(Table1.RecNo) then DBGrid1.Canvas.Brush.Color := TColor($00FEE2E8); DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State); end else begin DBGrid1.Canvas.Brush.Color := TColor($0080FF00); if DBGrid1.Columns[DataCol].Index=0 then begin DBGrid1.Canvas.FillRect(Rect); ImageList1.Draw(dbgrid1.Canvas,Rect.Left+4,Rect.Top,0,True); end; end; DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State); |
#4
|
|||
|
|||
En el evento OnDrawColumCell
|
#5
|
||||
|
||||
No soy muy ducho en esto de dibujar y es difícil leer el código sin indentar, pero una vez indentado:
Código:
if not (gdSelected in State) then begin if Odd(Table1.RecNo) then DBGrid1.Canvas.Brush.Color := TColor($00FEE2E8); DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State); end else begin DBGrid1.Canvas.Brush.Color := TColor($0080FF00); if DBGrid1.Columns[DataCol].Index=0 then begin DBGrid1.Canvas.FillRect(Rect); ImageList1.Draw(dbgrid1.Canvas,Rect.Left+4,Rect.Top,0,True); end; end; DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State); // Saludos |
#6
|
|||
|
|||
Lo logre!!!
Gracias por su ayuda. Código:
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); begin if not (gdSelected in State) then begin if Odd(Table1.RecNo) then DBGrid1.Canvas.Brush.Color := Tcolor($00E1E1E1); DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State); end else begin if DBGrid1.Columns[DataCol].Index=0 then begin DBGrid1.Canvas.FillRect(Rect); ImageList1.Draw(dbgrid1.Canvas,Rect.Left,Rect.Top,0,True); end; end; end; |
#7
|
|||
|
|||
Sobre el mismo tema
Revise la información que colocaste, el punto es que necesito que se muestre la imagen que se encuentra almacenada en la base de datos trabajo con una conexion a mysql, donde tengo un campo que me soporte imagenes, pero no puedo mostrarla dentro de la grid, al menos ya se que es posible, me podrian ayudar, gracias
|
|
|
|