Ver Mensaje Individual
  #4  
Antiguo 08-04-2010
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Reputación: 17
rgstuamigo Va por buen camino
Arrow

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...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7

Última edición por rgstuamigo fecha: 08-04-2010 a las 20:51:01.
Responder Con Cita