Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #7  
Antiguo 06-10-2010
rrf rrf is offline
Miembro
 
Registrado: ago 2003
Ubicación: S/C Tenerife, España
Posts: 454
Poder: 23
rrf Va por buen camino
Wink

Hola.

Aquí te incluyo 2 ejemplos de código para guardar desde un TIBDataset (campo blob) a un TImage y viceversa.

Son sacados de un programa que hice hace mucho tiempo para practicar y aprender a usarlo y espero que te sean útiles.

El primer ejemplo es para guardar la imagen desde un campo Blob a un TImage y se pone en marcha cuando se cambia de una ficha a otra, por ejemplo, en un DBGrid:

Código Delphi [-]
uses Jpeg, ... ;

...

procedure TDModule1.DSetAfterScroll(DataSet: TDataSet);
var
  MS1  : TMemoryStream ;
  JPEG1   : TJPEGImage;
begin
                   // Después de moverse x el DataSet (ej. en un DBGRid)
                   // actualiza la información
                   //------------------------------------

 //------------------------------- Meter la Imagen al Image1   --------------
    try

      // Vacía la imagen por si esa fila no contiene imagen; pues
      // de no hacerlo, se vería la imágen de la última ficha que sí tenía imagen
      Ppal.image1.Picture.Assign ( NIL ) ;

      MS1 := TMemoryStream.Create  ;
      DSetBlobImag.SaveToStream (MS1) ;
      MS1.Position := 0 ;

      if MS1.Size > 0     // Si el campo contiene alguna información
      then
        begin
          JPEG1 := TJpegImage.Create;
          JPEG1.LoadFromStream( MS1 );

          if not JPEG1.Empty           // Si tiene contenido, lo copia
           then Ppal.image1.Picture.Assign ( JPEG1 ) ;
        end ;


    finally
      JPEG1.Free;
      MS1.Free;
    end;

end;

Este es para guardar la imágen desde el TImage al campo blob:

Código Delphi [-]
procedure TEdita_Reg.BConfirmarClick(Sender: TObject);
var
  MS1  : TMemoryStream ;
begin

             //=========== GUARDAR IMAGEN en el campo blob ======================
  TRY
     MS1 := TMemorySTream.create ;
     if (image1.Picture.Height > 0 ) or   // IMAGE1 no está vacía
         (image1.Picture.Width  > 0 )
       then
         begin
           image1.picture.Graphic.SaveToStream (ms1)  ;
           ms1.Position := 0 ;
           DModule1.DSetBLOBIMAG.LoadFromStream ( ms1 ) ;
         end
       else                                         // IMAGE1 está vacía
         DModule1.DSetBLOBIMAG.Clear ;

  FINALLY
    MS1.free;
  END ;

  DModule1.DSet.Post ;
  DModule1.Transac.CommitRetaining ;

end;

El código original lo obtuve buscando mucho en este foro e internet y lo adapté un poco.

Quizás se ajuste a lo que buscas, aunque creo que lo normal es usar los componentes TDBImage que ahorran mucho código porque enlazan directamente con el IBDataset.

Salu2.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Guardar Imagen de un TImage num11 Varios 3 19-03-2009 05:52:55
Guardar una Imagen a PDF atrus Gráficos 8 12-08-2008 10:36:03
Guardar imagen franfl Firebird e Interbase 1 29-02-2008 09:02:54
Guardar una imagen en una tabla sexshop_3 Varios 4 09-11-2007 20:01:11
Guardar una imagen en un DB lore Conexión con bases de datos 5 20-03-2007 17:07:48


La franja horaria es GMT +2. Ahora son las 13:20:19.


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