FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Iconos en Menús, vaya piiiiii
Hola!
Como todos sabréis (y si no os lo recuerdo), si exportas un icono de Windows XP de una dll o un exe (por ejemplo shell32.dll) y lo colocas en el menú, el icono sale envuelto de una franja de color fucsia (o del color con que lo hayas exportado). No habria alguna forma de que los iconos quedasen tan chulos en nuestro programa como los iconos que lleva el WinXP? Espero que me entendáis alguien lo ha conseguido? Yo de momento lo que hago es editarlos con el paint shop pro (parecido al photoshó) hasta que queden más o menos bien. Gracias! |
#2
|
||||
|
||||
Desde que uso ArtIcons he olvidado los colores que usan los programas para el color transparente, jejejej.
Si lo vas a añadir a un ImageList, coloca la propiedad del ImageList.Transparent := true, ello quitará el color fuchsia sin tener que editar el icono. saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#3
|
|||
|
|||
No encuentro la propiedad ImageList.Transparent (en el BDS2006) pero si que he visto la propiedad ImageList.DrawingStyle y la he puesto en dsTransparent pero esta propiedad no me ha solucionado nada, porque los iconos de windows XP llevan una degradación del color en los bordes para que el efecto sea más suave, entonces por ejemplo la propiedad Transparent "elimina" el color fucsia (#ff00ff) pero el color de los bordes, que es cercano al negro no los degrada para hacer un gris, ya que el código del color no es el mismo, y por lo tanto se ve el borde rosado.
|
#4
|
||||
|
||||
Hola Gunman, una vez trate de hacer algo parecido y me encontré con una pared ya que eso es un problema que llega hasta las librerias de Windows. Me explico: para las imágenes de los menús, la VCL usa algunas funciones de Windows que "pintan" estos íconos en formato BMP y creo que lo hace sin el "flag" o bit de nivel de transparencia. Lo que puedes hacer es guardar tus imágenes con el mismo color del fondo del menú, pero tambien está el problema que no todos los Windows y computadores tienen el mismo color de fondo para el menú, asi que tal vez tengas que usar un Componente TActionMenuBar combinado con TStandardColorMap para que el menú siempre lo pinte del mismo color. Otra opción es que uses un componente "Menú" personalizado que si tenga esas características.
La última opción es algo que implemente en un sistema que hice hace poco y es un poco laboriosa : Conviertes tus imágenes a PNG, bajas algun componente/librería PNG para delphi y pintas tu mismo la imagen en los menús en el evento OnDrawItem. ¿Por qué en formato PNG y no directamente como *.ICO? Porque es una desagradable sorpresa cuando tengas que correr tu sistema en Windows2000/9x y veas los iconos con esos manchones negros (Porque solo Windows XP admite transparencias) . En formato PNG no tienes ese problema.
__________________
"En el siglo de la estupidez todas las casas comienzan por la fachada" (Fuckowsky) Planeta Insólito, La Pluma Inspirada Última edición por Jonnathan fecha: 31-01-2006 a las 14:35:32. |
#5
|
|||
|
|||
Mmm... interesante solución, de momento ya he solucionado mi problema como lo he hecho hasta ahora (con el photoshó) ya probaré en alguna otra ocasión.
Gracias ;-) |
#6
|
|||
|
|||
Gunman
Te explico, el nuevo formato de iconos que trae windows XP añade un nuevo canal a la imagen (por defecto las imagenes tienen Rojo, verde y azul, para formar cualquier color), este canal es utilizado para generar el nivel de transparencia de los otros 3, es decir, 255 el punto es totalmente visible, 0 es totalmente invisible, por lo tanto tienes una gama de 255 niveles de transparencia. Delphi solo soporta los iconos con los tres canales basicos (no soporta el canal ALPHA) por lo tanto solo puedes elejir 1 color para que no sea dibujado (transparente). Existen un par de librerias que te permiten trabajar con estas transparencias, pero todas son de pago. Una de las pocas soluciones (si no quieres implementar una rutina de dibujo con canal ALPHA en los menus) es fijar el color de los menus y en Photoshop convertir los iconos en imagenes con el color de fondo que elejiste para los menus. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Los menús desaparecerán de la próxima versión de Microsoft Office | marcoszorrilla | Noticias | 3 | 19-11-2005 20:53:42 |
Iconos para tus aplicaciones y/o páginas Web | dec | Gráficos | 1 | 09-09-2005 16:20:20 |
Virtual Listview e iconos virtuales. Muy interesante pero... | Playwithfire | Varios | 4 | 14-10-2004 15:06:28 |
Usar iconos multiformato???? | burasu | Varios | 0 | 07-10-2004 12:59:45 |
Agregar iconos como recursos | roman | Gráficos | 1 | 28-02-2004 03:42:18 |
|