Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-07-2005
arj2000 arj2000 is offline
Miembro
 
Registrado: abr 2004
Ubicación: Estocolmo
Posts: 25
Poder: 0
arj2000 Va por buen camino
Unhappy Iconos XP en runtime

Muy buenas.

Estoy intentando cargar iconos xp (alpha blending) en un TImageList en tiempo de ejecución y se me ven muy mal. Lo que hago es leer la ruta del icono desde la base de datos y insertar el icono en el TImageList mediante un TIcon.

¿Que hago mal? ¿O es que no se puede? Lo digo porque si meto directamente los iconos en el TImageList desde el editor del Delphi se ven muy bien.

Muchas gracias de antemano.
__________________
Código:
 i := i + 1;	 // i++
Responder Con Cita
  #2  
Antiguo 12-07-2005
Avatar de yusnerqui
yusnerqui yusnerqui is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuba
Posts: 679
Poder: 21
yusnerqui Va por buen camino
Hola

No te aseguro que funcione, pues no lo puedo probar ahora, pero quizás con:

Código Delphi [-]
  ImageList1.Masked := true;

mejore la apariencia.


Saludos.
__________________
Lo importante no es llegar primero, sino saber llegar.

Para que puedas llegar mejor lee la Guia de Estilo

Responder Con Cita
  #3  
Antiguo 12-07-2005
arj2000 arj2000 is offline
Miembro
 
Registrado: abr 2004
Ubicación: Estocolmo
Posts: 25
Poder: 0
arj2000 Va por buen camino
Unhappy

Pues no funciona. Ni poniendo ImageType a itMasked, ni Masked a true... Ya te digo, si cargo los archivos uno a uno
(porque si le haces que carge más de 2 a la vez, se cargan mal también) en el imagelist antes de compilar, va bien, pero si lo hago en el "create" o en el "show" o donde sea, se ven sin el "alpha channel".

Es una putada, porque no hay manera de cargar "dinamicamente" iconos en formato XP
__________________
Código:
 i := i + 1;	 // i++
Responder Con Cita
  #4  
Antiguo 07-02-2006
arj2000 arj2000 is offline
Miembro
 
Registrado: abr 2004
Ubicación: Estocolmo
Posts: 25
Poder: 0
arj2000 Va por buen camino
Lo conseguí

Código:
procedure TfrmReNamer.ConvertTo32BitImageList(const ImageList: TImageList);
const
  Mask: array[Boolean] of Longint = (0, ILC_MASK);
var
  TemporyImageList: TImageList;
begin
  // add to uses: commctrl, consts;   
  if Assigned(ImageList) then
  begin
    TemporyImageList := TImageList.Create(nil);
    try
      TemporyImageList.Assign(ImageList);
      with ImageList do
      begin
        ImageList.Handle := ImageList_Create(Width, Height, ILC_COLOR32 or Mask[Masked], 0, AllocBy);
        if not ImageList.HandleAllocated then
        begin
          raise EInvalidOperation.Create(SInvalidImageList);
        end;
      end;
      ImageList.AddImages(TemporyImageList);
    finally
      TemporyImageList.Free;
    end;
  end;
end;
__________________
Código:
 i := i + 1;	 // i++
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


La franja horaria es GMT +2. Ahora son las 06:03:52.


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