Fecha actual Sab Jun 29, 2024 6:42 am

Todos los horarios son UTC + 1 hora [ DST ]




Nuevo tema Responder al tema  [ 5 mensajes ] 
Autor Mensaje
NotaPublicado: Lun Oct 31, 2005 6:05 pm 

Registrado: Vie Oct 07, 2005 6:15 pm
Mensajes: 72
Bruno

¿Es posible implementar la propiedad MaskColor en los controles que soportan imágenes?, de tal manera poder definir manualmente que color debe ser tomado como "transparente" en la imagen del objeto

Pues he visto en repetidas ocasiones que ocurre un problema como el que figura en el archivo imagen (muestra.zip) que adjunto en este mensaje, un color que imagino debe ser transparente aparece como sólido

Claro con los iconos no hay problema en este caso,pero no todos los controles soportan iconos sinó tan solo BMP

Detalles:
La imagen fue tomada de la aplicación que ejecuté en una PC con Windows 98 SE.

Saludos
MAURICIO


Adjuntos:
muestra.zip [4.27 KiB]
253 veces
Arriba
 Perfil  
Responder citando  
 Asunto:
NotaPublicado: Lun Oct 31, 2005 6:55 pm 
Site Admin
Avatar de Usuario

Registrado: Jue Oct 06, 2005 10:49 pm
Mensajes: 655
Ubicación: España - Salamanca
Mauricio,

Esa propiedad ya existe, y se llama así:

oImagen:Picture:Bitmap:MaskColor := clOlive

He ejecutado el test en Windows98 y Windows XP y se ven de forma transparente, de dónde has sacado la imagen?

_________________
Un saludo,
Bruno Cantero
www.c3compiler.com


Arriba
 Perfil  
Responder citando  
NotaPublicado: Lun Oct 31, 2005 8:18 pm 

Registrado: Vie Oct 07, 2005 6:15 pm
Mensajes: 72
Bruno

Ok, existe la propiedad, la imagen la he sacado del ejemplo que pusiste en la Web el del Splitter por eso cuando lo ejecute me pareció extraño.

Dime esa propiedad maskcolor tomará el color que yo le de y lo mostrará transparente?.

Prueba esto, en Windows 98 cambia los colores predefinidos al texto, cara de los botones, color de la barra de las ventanas, etc. luego ejecuta un ejemplo con imagenes a ver que sucede.

Saludos
MAURICIO


Arriba
 Perfil  
Responder citando  
 Asunto:
NotaPublicado: Lun Oct 31, 2005 8:41 pm 
Site Admin
Avatar de Usuario

Registrado: Jue Oct 06, 2005 10:49 pm
Mensajes: 655
Ubicación: España - Salamanca
Mauricio,

Las imágenes que yo uso no tienen fondo gris, como el fondo de los botones, sino verde oliva, por eso le asigno a la propiedad MaskColor el valor de clOlive, es decir, el color que indique esa propiedad se convertirá en transparente, independientemente del color de fondo (botones, barras, etc, etc). Mira la imagen que adjunto de Windows98 con colores cambiados. No olvides que esa propiedad no se puede asignar desde el IDE, por eso cuando uses imágenes no te olvides de asignarla por código, por ejemplo en el evento OnCreate o OnShow del formulario. Este es el código del ejemplo:

#include "Form1.frm"

/*
* Evento OnShow.
*/
METHOD Form1OnShow( oSender ) CLASS TForm1

local nlevel1, nLevel2

::Image1:Picture:Bitmap:MaskColor := clOlive

::TreeView1:ImageList:Images := { "MINISOBRE", "CARPETASLOCALES", ;
"BENTRADA", "BSALIDA", "EENVIADOS", ;
"EBORRADOS", "BORRADOR" }

nLevel1 := ::TreeView1:InsertItem( 0, "Outlook Express", 1 )
nLevel2 := ::TreeView1:InsertItem( nLevel1, "Carpetas locales", 2 )
::TreeView1:InsertItem( nLevel2, "Bandeja de entrada", 3 )
::TreeView1:InsertItem( nLevel2, "Bandeja de salida", 4 )
::TreeView1:InsertItem( nLevel2, "Elementos enviados", 5 )
::TreeView1:InsertItem( nLevel2, "Elementos eliminados", 6 )
::TreeView1:InsertItem( nLevel2, "Borrador", 7 )

::TreeView1:Expand( nLevel1 )
::TreeView1:Expand( nLevel2 )

Application:OnShowHint := { | cHint | ::FStatus:Caption := If( Empty( cHint ), ;
"0 mensajes, 0 no leídos", cHint ) }

return


Adjuntos:
Imagen.jpg [27.25 KiB]
253 veces

_________________
Un saludo,
Bruno Cantero
www.c3compiler.com
Arriba
 Perfil  
Responder citando  
NotaPublicado: Lun Oct 31, 2005 11:32 pm 

Registrado: Vie Oct 07, 2005 6:15 pm
Mensajes: 72
Bruno

Probaré el codigo que pusiste en el mensaje, a ver que sucede imagino que será suficiente para saltar esta duda. Te avisaré en caso contrario.

Saludos
MAURICIO


Arriba
 Perfil  
Responder citando  
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 5 mensajes ] 

Todos los horarios son UTC + 1 hora [ DST ]


No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro
No puede enviar adjuntos en este Foro

Buscar:
Saltar a:  
cron