Visual Basic Foro
Programación => Visual Basic 6 => Mensaje iniciado por: YAcosta en Marzo 16, 2011, 08:54:33 pm
-
Hola.
Estuve buscando por la web y no he encontrado resolver lo siguiente.
Tengo un control Image que tiene cargada una foto. Lo que quiero es que esa foto este a una transparencia del 50%, y luego irlo aumentando para que llegue al 100%. La idea es que quiero simular que cuando el mouse se acerque al control la foto se vaya poniendo con sus colores mas solidos y cuando se aleje se vaya poniendo transparente nuevamente sin que desaparezca (50%), entiendo que lo trabajare sobre el enveto MouseMove del form. En todo caso me contento con que al poner el mouse sobre el control Image este se ponga con sus colores reales y al salir se restablezca al 50%.
Mi problema esta en que solo he hallado la transparencia para el Picture y no para el image, creo que es por el HDC no estoy seguro. Pero sera posible hacerlo con Image????
Gracias.
-
Hola no el control image no tiene hdc existe otras formas de hacerlo, pero yo directamente optaria por usar el ucimage de Cobein es este que esta aqui http://www.leandroascierto.com.ar/categoria/Controles%20de%20Usuario/articulo/ucImage%20y%20ucImageList.php
Saludos.
-
Leandro lo acabo de bajar y lo he probado. Esta Excelente!!! incluso le puse un timer para probar como juega la "disolvencia" y ni parpadea ni nada. Bravaso!!!
Un aplauso para Cobein!!!
Saludos y gracias.
-
Cante victoria muy rapido jeje.
Bueno el control esta perfecto, de eso no hay duda, pero se me presentaron unos problemitas
Primero copie y pegue en la carpeta de mi proyecto:
I_ICON.bmp
pppImage.pag
ucImage.ctl
ucImage.ctx
Luego di agregar archivo ucImage y me cargo en control en la barra de controles.
Luego di agregar la Pagina de Propiedades, le di la ruta y me sale el error:
Errores de carga y me apunta a un archivo log que tiene esto:
"Línea 45: la clase Proyecto1.ucImage del control ucImage1 no era una clase de control cargada."
Luego puse un control ucImage y cuando le quiero dar propiedades para cargar una imagen se para con un error en esta linea de codigo:
Call .LoadImageFromStream(bvStream)
y el error que me sale es
No se encontro el metodo o miembro de datos.
Esa linea es de esta parte:
Private Sub PropertyPage_SelectionChanged()
Set m_oUCImage = SelectedControls(0)
txtFile = m_oUCImage.ppgGetFilename
Dim bvStream() As Byte
bvStream = m_oUCImage.GetStream
With ucImage1
Call .LoadImageFromStream(bvStream) <------------ aqui
Call .Move(240, 180, 4875, 2415)
.ScaleMode = eScaleDown
End With
End Sub
Otro detalle es que cuando ejecuto el programa, el control sale con lineas y se vuelve inaccesible hasta que le de actualizar al formulario, pero esto no pasa en el proyecto de Cobein, por mas que ejecute o aumente controles no sucede eso.
Seguiré indagando pero si alguien sabe como va esto le agradeceria mucho, algo debo estar haciendo muy mal.
-
Hola Ivan, ese problema se soluciona facil, lo que pasa es que LA PAGINA DE PROPIEDADES (ppgImage) usa el control de ucImage, es por eso que te sale el ese error, lo que tienes k hacer es borrar el control que esta en ppgImage y colocar nuevamente el control ucImagen en ppgImagen y se soluciona el problema. Espero me ayas entendido.
Salu2.
-
Excelente jack06, fue asi como dijiste, quite y volví a poner y se corrigió. Muchas gracias.
Aun me queda la duda de porque cuando ejecuto mi programa y luego vuelvo a modo de diseño en el control ucImage ya no se ve la imagen, en vez de eso aparecen lineas y solo cuando le doy a Actualizar Controles de Usuario en el formulario se repone. Y esto no pasa en el proyecto que descargue. Igual todo funciona pero a veces es una molestia.
-
Hola YvanB supongo que te referís las típicas rallas que aparecen en los usercontrols cuando esta abierta la ventana del usercontrol asegurate de cerrar la ventana, y si aveces no se porque se vuelve a abrir cuando volves al ide, pero intenta cerrando la ventana guarda el proyecto cerra todo y volve a abrir.
Saludos.
-
Si a eso me refiero. E hice lo que me indicaste, pero siempre salen las rayitas en tiempo de diseño, incluso cuando estan las lineas no es posible seleccionar el control directamente, me obliga a hacer el refresh del formulario y ya puedo trabajar, solo es una pequeña molestia pero me llama la atencion que en el proyecto original de Cobein que descargue eso no sucede, incluso alli mismo puse mas ucImages con diferentes png y no salen las rayitas para nada, el proyecto queda limpio.
Hay otro punto que no he podido resolver (para variar jeje) y es que me parece que el control no tiene la propiedad mousepointer, intente agregarla pero desmadre todo asi que lo borre jeje. Lo que pasa es que seria visualmente interesante que cuando pase el mouse sobre el ucImage (al menos usando MouseEnter) cambie el icono del mouse por un icono propio como lo hago actualmente en los otros controles. ¿Sera muy difícil agregarle esa propiedad?
Gracias!!!
-
Bien, el tema del puntero del mouse quedo resuelto, esta fue una idea que me dio el amigo Cobein cuando le escribí un mensaje directo.
Lo que me propuso fue setear esto a nivel de formulario en los eventos MouseEnter y MouseExit del control ucImage. Lo probe y funciono de maravilla, ahora me pondre la camiseta ucImage.
el asunto era hacerlo asi:
En el evento MouseEnter:
Me.MousePointer = 99
Me.MouseIcon = frmGraficos.ImHand.Picture <---- Aqui tengo mi icono, que ya lo tengo cargado en el proyecto.
En el evento MouseExit:
Me.MousePointer = 1
Problema resuelto
Saludos.