Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-04-2014
camiz camiz is offline
Miembro
 
Registrado: ene 2012
Posts: 69
Poder: 13
camiz Va por buen camino
Problemas para eliminar imagenes de un ImageList

nuevamente por aquí necesitando ayuda, tengo un problema con un TImageList.
lo que sucede es que el TImageList me sirve para cargar imágenes desde una base de datos para posteriormente mostrar las imágenes en un TListView, hasta aquí todo bien : guardo la imagen en la base de datos, lo cargo en el TImageList y lo muestro en un TListView correcto.
el problema surge cuando hago el procedimiento otra vez ya no me muestra la imagen correcta.

he revisado todo en busca del error y creo que lo encontré en el TImageList, sucede que cada vez que se ejecuta ejecuta el código va aumentando las imágenes en el TImageList y esto hace mostrar erróneamente la imagen incorrecta.

creo que la solución seria antes de cargar al TImageList eliminar las imágenes, pero he probado con estos código y ninguno funciona.
Código Delphi [-]
ImageList1.Clear;
ImageList1.Items.Clear;

hay otra manera de limpiar un TImageList;
aquí el código que utilizo para cargar imágenes
Código Delphi [-]
var
  i, X, Y: Integer;
  it: TListItem;
  B: TBitmap;
  P: TPNGObject;
begin
    with frmConeccion.Iconos_V do
    begin
      frmIconos.LvIconos.Clear;
      SQL.Clear;
      SQL.Text := 'select * from img order by idimg asc';
      Active := True;
      First;
      ListView1.Clear;
      for i:= 0 to RecordCount -1 do
      begin
        P:= TPNGObject.Create;
        B:= TBitmap.Create;
        try
          P.Assign(TBlobField(FieldByName('IMAGEN')));
          B.Width:= P.Width;
          B.Height:= P.Height;
          B.PixelFormat:= pf32bit;
          B.SetSize(B.Width, B.Height);
          for Y := 0 to B.Height - 1 do
          for X := 0 to B.Width - 1 do
          B.Canvas.Pixels[X, Y]:= $00FFFFFF;
          B.Canvas.Pen.Color := clRed;
          B.Canvas.Rectangle(20, 20, 60, 60);
          P.Draw(B.Canvas, Rect(0, 0, P.Width, P.Height));
          ImageList1.Add(B, B);
        finally
          P.Free;
          B.Free;
        end;
       Next;
     end;
     Active := False;
    end;

Última edición por camiz fecha: 24-04-2014 a las 22:44:30.
Responder Con Cita
  #2  
Antiguo 24-04-2014
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 camiz.

Con:
Código Delphi [-]
 ImageList1.Clear;
definitivamente estas limpiando todas las imágenes del TImageList. Muy probablemente ese efecto que mencionas se debe a que también tendrías que hacerlo con el TListView al volver a cargar los datos:
Código Delphi [-]
ListView1.Clear;
.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 25-04-2014
camiz camiz is offline
Miembro
 
Registrado: ene 2012
Posts: 69
Poder: 13
camiz Va por buen camino
ecfisa gracias por responder,

discúlpame, olvide comentar que estoy utilizando el componente TsAlphaImageList de AlphaControls v 8. lo uso por que es mas versátil se puede cargar imágenes de cualquier tamaño, y para mostrarlo lo deseado solo se configura en el tamaño que se desea usar y ya esta y lo mejor que es mas fácil obtener imágenes con fondo transparente con este.

pero en este componente no funciona.

Código Delphi [-]
sAlphaImageList1.Clear;

Última edición por camiz fecha: 25-04-2014 a las 00:14:25.
Responder Con Cita
  #4  
Antiguo 25-04-2014
camiz camiz is offline
Miembro
 
Registrado: ene 2012
Posts: 69
Poder: 13
camiz Va por buen camino
bueno encontré la solución lo dejo por si ha alguien le hace falta

en un TImageList o en otros, funciona perfecto asi
Código PHP:
ImageList1.Clear
en un componente sAlphaImageList funciona asi
Código Delphi [-]
  sAlphaImageList1.Clear;
  sAlphaImageList1.Items.Clear;
  sAlphaImageList1.AcBeginUpdate;

solucionado.
Responder Con Cita
  #5  
Antiguo 25-04-2014
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
Me alegro que lo hayas solucionado

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
Respuesta



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
Cargar imágenes desde archivo en ImageList vankul C++ Builder 2 04-12-2013 06:17:33
Asignar imágenes a ImageList en tiempo de ejecución newtron Varios 8 04-04-2012 19:16:37
IMAGENES en el toolbar asociado con imagelist Gbyte Gráficos 2 05-06-2008 01:09:59
¿ImageList moderno que soporte imágenes PNG para los botones del ToolBar? Black_Ocean Varios 4 30-05-2008 21:38:18
Cargar imágenes desde un imagelist johncook Varios 1 06-12-2004 13:44:15


La franja horaria es GMT +2. Ahora son las 00:08:58.


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