Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Gráficos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-07-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.964
Poder: 29
delphi.com.ar Va camino a la fama
Varios comentarios:
- ¿Cuál es la lógica de ese tratamiento de errores?
- ¿Cuál es el sentido, de inicializar las variables Jpg y Stream?
- ¿Existen garantías de que exista datasource1.DataSet.FieldByName('logo')?
...

Este último punto, seguramente es la raíz de tu problema, primero tienes que saber si datasource1 tiene asignado un DataSet y luego si en este DataSet existe el campo ‘logo’:

Código Delphi [-]
var
  AField: TField;
begin
  ...
  If Assigned(datasource1.DataSet) then
  begin
    AField := datasource1.DataSet.FieldByName('logo');
    if Assigned(AField) then
       ...
  end;
Por otro lado... ¿Seguro que no puedes acceder directamente al DataSet?

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #2  
Antiguo 19-07-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.964
Poder: 29
delphi.com.ar Va camino a la fama
Manteniendo tu lógica:
Código Delphi [-]
var
  Stream: TMemoryStream;
  Jpg: TJpegImage;
  GraphType: TGraphType;
begin
  Stream := TMemoryStream.Create;
  try
    if Assigned(Query1.FieldByName('logo')) then
      try
        TBlobField(Query1.FieldByName('logo')).SaveToStream(Stream);
        if Stream.Size > 0 then
        begin
          Stream.Position := 0;
          Stream.Read(GraphType, 1);

          case GraphType of
            gtBitmap:
              Image1.Picture.Bitmap.LoadFromStream(Stream);
            gtIcon:
              Image1.Picture.Icon.LoadFromStream(Stream);
            gtMetafile:
              Image1.Picture.Metafile.LoadFromStream(Stream);
            gtJpeg:
            begin
              Jpg := TJpegImage.Create;
              try
                Jpg.LoadFromStream(Stream);
                Image1.Picture.Assign(Jpg);
              finally
                Jpg.Free;
              end;
            end else
              Image1.Picture.Assign(nil);
            end;
          end else
            Image1.Picture.Assign(nil);
      except
        on e: Exception do
        begin
          Image1.Picture.Assign(nil);
          raise;
        end
      end;
  finally
    Stream.Free;
  end;
end;
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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


La franja horaria es GMT +2. Ahora son las 11:53:44.


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