Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Traer imagen a un dbgrid desde acces (https://www.clubdelphi.com/foros/showthread.php?t=67256)

juangabriel1786 08-04-2010 03:16:17

Traer imagen a un dbgrid desde acces
 
Hola uso delphi 7 y acces 2007,
Me gustaría saber como puedo traer imágenes desde access con un dbgrid
uso componentes ado

Caral 08-04-2010 03:23:21

Hola
Creo, no me hagas mucho caso, pero creo que no se puede.
Esperemos a ver si alguien mas sabe, asi tambien aprendere.
Saludos
PD: Lo maximo que he hecho es colocar un timage dentro o aparentemente dentro del dbgrid.

Neftali [Germán.Estévez] 08-04-2010 10:14:11

Con el DBGrid estandard de Delphi no se puede.
O buscas alguno de los DBGrids gratuítos que tienen implementada esta funcionalidad (Torry) o intentas programar tú mismo la visualización de la imagen en el DBGrid (eventos CustomDrawCell).

Si buscas en el foro sobre este evento, alguna vez hemos hablado de él.

rgstuamigo 08-04-2010 20:47:52

Bueno no es nada complicado tener una columna de tu DBGrids con Imagenes tan solo utiliza el evento OnDrawColumnCell de tu DBGrid y pon un código similar a Esto:
Código Delphi [-]
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
  if Column.Field = ADOQuery1FOTO then //si el campo actual es mi campo foto
  begin
    if not (gdSelected in State) then // si no esta la celda seleccionada
      DBGrid1.Canvas.FillRect(Rect); // limpia la celda
    with TPicture.Create do //creo un Objeto TPicture
    begin
      Assign(ADOQuery1FOTO);//asigno a mi objeto TPicture la imagen que tengo en el Campo actual 
                                             //osea mi campo ADOQuery1FOTO
      DBGrid1.Canvas.StretchDraw(Rect,Bitmap); // dibujo el Bitmap de mi objeto TPicture en la celda actual del DBGrid
      Free;//destruyo el objeto TPicture pues ya no lo necesito
    end;
  end;
end;
Claro está que tus campos (fields) de tu Dataset(ADOQuery ,ADOTable) deben estar añadidos como "componentes de acceso de campos" ,de ahí que en el ejemplo yo tenga un componente de acceso de campo llamado "ADOQuery1FOTO".;).
Si tienes dudas de como añadir componentes de acceso de campos ,te aconsejo leer éste estupendo libro el capitulo 16 ,página Nro 323.;).
Saludos...:)


La franja horaria es GMT +2. Ahora son las 17:48:20.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi