Ir al contenido


Foto

BLOB imagen en celda DbGrid?


Mejor respuesta dooper , 28 abril 2021 - 04:57

Encontré la solución, simplemente era el campo del edit en su propiedad FONT.  marcarla en clwhite y ya desaparece.

Gracias

Ir al mensaje completo


  • Por favor identifícate para responder
6 respuestas en este tema

#1 dooper

dooper

    Advanced Member

  • Miembros
  • PipPipPip
  • 298 mensajes

Escrito 23 abril 2021 - 11:49

He probado de mil y una maneras en visuailzar la imagen en .bmp que tiene la tabla en el campo foto tipo "BLOB" en sqlit3 y ZeosLib, probé con un .jpg y tampoco. Pero no consigo visualizarla en la celda de un DBGRID1.

Si he conseguido que la guarde y he comprobado que lo ha hecho correctamente en la tabla de la bb.dd.

Este es el código que uso para intentar visualizarla en las celda, pero por más que intento no visualiza la imagen, los datos texto, si los visualiza. Y en un TImage como sería?

¿Qué hago mal?, para aprender de los errores?


php
  1. procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  2. DataCol: Integer; Column: TColumn; State: TGridDrawState);
  3. var
  4. bitmap : TBitmap;
  5. fixRect : TRect;
  6. begin
  7. fixRect := Rect;
  8.  
  9. Bitmap:=TBitmap.Create;
  10. if (Column.FieldName = 'foto' ) then
  11. try
  12. Bitmap.Assign(ZQuery1.FieldByName('foto'));
  13. DBGrid1.Canvas.StretchDraw(fixRect, BitMap);
  14. finally
  15. bitmap.Free;
  16. end;

Gracias.


  • 0

#2 dooper

dooper

    Advanced Member

  • Miembros
  • PipPipPip
  • 298 mensajes

Escrito 24 abril 2021 - 11:21

Estoy probando de esta manera y tampoco. Sí he conseguido que lo cargue en un TImage. Pero en la celda de la Dbgrid, imposible y ya no sé por donde indagar en el código y salir del embrollo, y hay a quien le funciona. Como digo la foto está en un campo BLOB de la tabla y he comprobado que está guardada sin problemas.


php
  1. if (Column.FieldName = 'foto' ) then
  2. begin
  3. Bitmap:=TBitmap.Create;
  4. unStream:= TMemoryStream.Create;
  5. try
  6. TBlobField(ZQuery1.FieldByName('foto')).SaveToStream(unstream);
  7. unstream.position:=0;
  8. Bitmap.LoadFromStream(unstream);
  9. DBGrid1.Canvas.Draw(fixRect.left,fixRect.top,Bitmap);
  10. finally
  11. bitmap.Free;
  12. unstream.free;
  13. end;
  14. end;


  • 0

#3 dooper

dooper

    Advanced Member

  • Miembros
  • PipPipPip
  • 298 mensajes

Escrito 24 abril 2021 - 03:26

Indagando he podido con el sacar la foto en el campo BLOB. El problema era por el IF ya que comparaba con el fieldname y estaba vacía porque me daba error al principio, y le he intento poner el campo y ahora sí.

Pero me saca debajo de la foto la palabra "BLOB" que quisiera eliminarlo y dejar sólo la foto. Veré como lo puedo hacer...


  • 0

#4 dooper

dooper

    Advanced Member

  • Miembros
  • PipPipPip
  • 298 mensajes

Escrito 26 abril 2021 - 05:18

Podría indicarme alguien como puedo eliminar el texto "BLOB" en el campo del mismo tipo en la celda del dbgrid. He conseguido insertar una imagen pequeña pero debajo sigue apareciendo la palabra "BLOB" y si no abarca toda la celda la imagen o la centro en la celda se solapan y se ve.

 

Una ayuda por favor, muchas gracias como siempre.


  • 0

#5 dooper

dooper

    Advanced Member

  • Miembros
  • PipPipPip
  • 298 mensajes

Escrito 28 abril 2021 - 04:57   Mejor respuesta

Encontré la solución, simplemente era el campo del edit en su propiedad FONT.  marcarla en clwhite y ya desaparece.

Gracias


  • 1

#6 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.460 mensajes
  • LocationMéxico

Escrito 28 abril 2021 - 02:28

Hola estuve viendo este asunto y pensé que lo que requerías era colocar la imagen y no "ocultar" la palabra "blob".

 

Como sea, que bien que se resolvió..

 

Saludos


  • 0

#7 dooper

dooper

    Advanced Member

  • Miembros
  • PipPipPip
  • 298 mensajes

Escrito 29 abril 2021 - 04:42

Hola Egostar, el tema de la imagen al fin puse colocar la imagen, despues de muchos golpes de cabeza y dejar y retomar pude hacerlo. Muchas gracias.


  • 0




IP.Board spam blocked by CleanTalk.