Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #7  
Antiguo 18-03-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola jafera.

Entiendo el problema pero al menos yo, no pude encontrar en forma directa evento o redefinición de método alguno para hacer la conversión de TJPEGImage a TBitmap, antes de que se produzca la asignación del campo al TDBImage.

Se me ocurrió que una opción, si no son muchos datos, podría ser utilizar un TClientDataSet en memoria. Para el ejemplo que te adjunto hice una tabla con sólo dos campos, un campo entero llamado ('ID') y otro blob que contiente la imágen ('IMAGEN'). Datos estos que cargo en el TClientDataSet mediante un TIBQuery.

Código Delphi [-]
uses jpeg;

procedure JpgToBitmap(AField: TField; B:TBitmap);
var
  J: TJPEGImage;
begin
  J:= TJPEGImage.Create;
  try
    J.Assign(TBlobField(AField));
    B.Height:= J.Height;
    B.Width:= J.Width;
    B.Assign(J)
  finally
    J.Free
  end;
end;


procedure TForm1.FormCreate(Sender: TObject);
var
  B: TBitmap;
begin
  CDS1.CreateDataSet;
  CDS1.Open;
  IBQuery1.Open;
  B:= TBitmap.Create;
  try
    while not IBQuery1.Eof do
    begin
      CDS1.Append;
      CDS1ID.Value:= IBQuery1.FieldByName('ID').Value;
      JpgToBitmap(IBQuery1.FieldByName('IMAGEN'), B);
      CDS1Imagen.Assign(B);
      CDS1.Post;
      IBQuery1.Next
    end;
  finally
    B.Free
  end;
  IBQuery1.Close;
  DBCtrlGrid1.DataSource:= DataSourceCDS1;
  DBImage1.DataField:= 'IMAGEN';
  DBImage1.Stretch:= True
end;
A partir de aquí podés utilizar todos los DBControls a traves del ClientDataSet, es decir que para mostrar información no se precisa más. Pero si existe la posibilidad de que se modifique algún dato deberías actualizar lo realizado al finalizar...

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
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
Recorrer directorio Pedro-Juan Conexión con bases de datos 4 09-02-2011 18:50:43
Mostrar ficheros de un directorio y subdirectoros chinchan C++ Builder 3 11-01-2009 22:26:49
Mostrar directorio con ShellExecute MON___ API de Windows 5 26-03-2008 13:07:00
Borrar archivos de un directorio nelem Internet 6 29-10-2007 16:04:00
Mostrar un directorio con el explorador de archivos de windows Jan_polero API de Windows 2 11-01-2005 18:40:21


La franja horaria es GMT +2. Ahora son las 23:05:08.


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
Copyright 1996-2007 Club Delphi