Pantalla de Splash con fondo transparente

672 views
Skip to first unread message

Jose Antonio Blasco

unread,
Sep 19, 2014, 4:51:07 AM9/19/14
to Comunidad de Visual Foxpro en Español
Hola a todos.
Se que este tema se ha tratado anteriormente, pero como Portalfox aún no está disponible, no puedo acceder a sus artículos.

Lo que quiero, si es posible, es hacer que la pantalla de "Splash" que muestro al iniciar la aplicación, tenga el fondo transparente.

¿Alguien sabe como hacerlo?.

Gracias anticipadas.

Jose A. Blasco
Zaragoza - España
Visual FoxPro 9 SP2


Rafael Mellado

unread,
Sep 19, 2014, 7:00:32 AM9/19/14
to publice...@googlegroups.com
Hola José A

Prueba esto:

_SCREEN.Addobject("oFondo","Image")
_Screen.oFondo.Picture= " xxxxxxx. xxx"
_Screen.oFondo.Top=(SYSMETRIC(2)-_Screen.oFondo.Height-100)/2
_Screen.oFondo.Left=(SYSMETRIC(1)-_Screen.oFondo.Width)/2
_Screen.oFondo.Stretch = 1
_Screen.oFondo.Visible=.T.

Jose Antonio Blasco

unread,
Sep 19, 2014, 7:28:03 AM9/19/14
to Comunidad de Visual Foxpro en Español
Gracias por el interés Rafael, pero haciendolo así, tengo que poner el Application.Visible =.t., y entonces me aparece la pantalla blanca del fondo de VFP.

¿ Se te ocurre alguna otra cosa ?


Jose A. Blasco
Zaragoza - España
Visual FoxPro 9 SP2

"No hay camino hacia la libertad, la libertad es el camino" - Indira Gandhi
“Nunca te olvides de sonreír, porque el día que no sonrías  será un día perdido”  -  Charles Chaplin
“Todo el mundo quiere tener un amigo, pero pocos se toman la molestia de ser uno”
- Anónimo

Rafael Mellado

unread,
Sep 19, 2014, 7:55:53 AM9/19/14
to publice...@googlegroups.com
Se puede cambiar el color del fondo y con photoshop se podría hacer un logo transparente.

_SCREEN.BackColor=5933026

Sl2

Luis Maria Guayan

unread,
Sep 19, 2014, 8:32:52 AM9/19/14
to publice...@googlegroups.com
Mira si esto te sirve:

-- Skinning a Form in Visual FoxPro --
http://www.sweetpotatosoftware.com/spsblog/permalink,guid,9a91dea3-6413-42e9-aeff-f0097937474d.aspx


Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________

Víctor Hugo Espínola Domínguez

unread,
Sep 19, 2014, 9:48:43 AM9/19/14
to publice...@googlegroups.com
Lambaré - Paraguay.

Víctor Hugo Espínola Domínguez

unread,
Sep 19, 2014, 9:53:37 AM9/19/14
to publice...@googlegroups.com
Hola José Antonio

Otro ejemplo:

DO Form (_Samples + "solution\sedona\fadeaway.scx")

Saludos,
Víctor.
Lambaré - Paraguay.

Jose Antonio Blasco

unread,
Sep 19, 2014, 10:22:18 AM9/19/14
to Comunidad de Visual Foxpro en Español
Gracias a todos por el interés.
Os explico lo que pretendo.

Quiero mostrar un texto ( el nombre y versión de la aplicación ), y quiero que aparezca sin fondo de ningún color.  Debe mostrarse sobre los iconos del escritorio.

Saludos.

Jose A. Blasco
Zaragoza - España
Visual FoxPro 9 SP2

"No hay camino hacia la libertad, la libertad es el camino" - Indira Gandhi
“Nunca te olvides de sonreír, porque el día que no sonrías  será un día perdido”  -  Charles Chaplin
“Todo el mundo quiere tener un amigo, pero pocos se toman la molestia de ser uno”
- Anónimo

Miguel Antúnez

unread,
Sep 19, 2014, 10:39:15 AM9/19/14
to publice...@googlegroups.com
Prueba poniendo esto en el Init de tu formulario

#DEFINE BADOS_LOC "This sample only runs on Windows 2000 or higher."

IF VAL(OS(3))<5
MESSAGEBOX(BADOS_LOC)
RETURN .F.
ENDIF

DECLARE SetWindowLong In Win32Api AS _Sol_SetWindowLong Integer, Integer, Integer
DECLARE SetLayeredWindowAttributes In Win32Api AS _Sol_SetLayeredWindowAttributes Integer, String, Integer, Integer
_Sol_SetWindowLong(THISFORM.hWnd, -20, 0x00080000)
_Sol_SetLayeredWindowAttributes(THISFORM.hWnd, 0, 100, 2)



--
Miguel Angel Antúnez Camones
mant...@gmail.com

Jose Antonio Blasco

unread,
Sep 19, 2014, 11:53:10 AM9/19/14
to Comunidad de Visual Foxpro en Español
Gracias por responder Miguel, pero con esas lineas solo consigo que el formulario entero tenga un nivel de transparencia, y yo lo que busco es que sea transparente solo el fondo de la imagen pero no su texto.

Me falta por probar la opción de Luis María.  Ya os contaré.

Un saludo.

Jose A. Blasco
Zaragoza - España
Visual FoxPro 9 SP2

"No hay camino hacia la libertad, la libertad es el camino" - Indira Gandhi
“Nunca te olvides de sonreír, porque el día que no sonrías  será un día perdido”  -  Charles Chaplin
“Todo el mundo quiere tener un amigo, pero pocos se toman la molestia de ser uno”
- Anónimo

Ultraton500

unread,
Sep 19, 2014, 12:14:25 PM9/19/14
to publice...@googlegroups.com
Qué tal José, sé a lo que te refieres (o creo saberlo). Se conoce como splash y una vez lo hice basándome en el ejemplo que indicó Luis María, que creería que es la única forma de hacerlo.
Así que deberías pensar en editar (con un editor gráfico tipo Corel, Fireworks, etc.) ese texto que quieres mostrar dentro de un fondo verde para que, cuando el verde desaparezca solo se vea tu texto. La desventaja de este método es que no es posible usar bordes suavizados o transparencias parciales.
La forma en que lo conseguí fue ejecutando el form de splash (el de la transparencia) desde el main.prg usando las siguientes lineas:

DEACTIVATE WINDOW SCREEN 
DO FORM "splash.scx"
READ EVENTS

En el form "splash.scx", tengo un Timer que, luego de determinados segundos, se cierra y llama al form principal de mi aplicación. Este form es un form modal, sin barra de título, sin bordes, con la propiedad ShowWindow=2 y con tu imagen de fondo verde en la propiedad Picture.

Espero te sea de ayuda,

Saludos,
Javier.

Jose Antonio Blasco

unread,
Sep 19, 2014, 1:13:17 PM9/19/14
to Comunidad de Visual Foxpro en Español
Gracias por el interes Javier.  
Efectivamente en las pruebas que estoy realizando solo el ejemplo de Luis Maria se acerca a lo que quiero.
Creo que en lugar del verde voy a utilizar otro color, pues en el ejemplo, realmente se toma el color del punto de la esquina inferior izquierda como color para transparencia.
Lo he probado con el verde, me funciona, pero con los colores que tiene el texto queda feo.  Voy a probar con un tono de gris poco habitual para ver si queda bien.

Gracias a todos de nuevo.
Un saludo.


Jose A. Blasco
Zaragoza - España
Visual FoxPro 9 SP2

"No hay camino hacia la libertad, la libertad es el camino" - Indira Gandhi
“Nunca te olvides de sonreír, porque el día que no sonrías  será un día perdido”  -  Charles Chaplin
“Todo el mundo quiere tener un amigo, pero pocos se toman la molestia de ser uno”
- Anónimo

Jose Antonio Blasco

unread,
Sep 22, 2014, 10:06:50 AM9/22/14
to Comunidad de Visual Foxpro en Español
Bueno, de nuevo gracias a todos.

Sólo para confirmar que pude conseguir lo que quería partiendo del ejemplo de Luis Maria ( !!! de cuantos problemas me han sacado sus respuestas y colaboraciones !!! ).  Como es normal, la calidad del resultado, depende de la imagen original.

Saludos.



Jose A. Blasco
Zaragoza - España
Visual FoxPro 9 SP2

"No hay camino hacia la libertad, la libertad es el camino" - Indira Gandhi
“Nunca te olvides de sonreír, porque el día que no sonrías  será un día perdido”  -  Charles Chaplin
“Todo el mundo quiere tener un amigo, pero pocos se toman la molestia de ser uno”
- Anónimo

Jose Mario

unread,
Sep 22, 2014, 3:35:20 PM9/22/14
to publice...@googlegroups.com
coloque aunque se la pantalla
por favor

Hector Colman

unread,
Sep 22, 2014, 3:54:17 PM9/22/14
to publice...@googlegroups.com
HOla
*en el INIT del formulario

DoDefault()
#Define BADOS_LOC "This sample only runs on Windows 2000 or higher."

If Val(Os(3))<5
Messagebox(BADOS_LOC)
Return .F.
Endif
Declare SetWindowLong In Win32Api As _Sol_SetWindowLong Integer, Integer, Integer
Declare SetLayeredWindowAttributes In Win32Api As _Sol_SetLayeredWindowAttributes Integer, String, Integer, Integer
_Sol_SetWindowLong(Thisform.HWnd, -20, 0x00080000)
_Sol_SetLayeredWindowAttributes(Thisform.HWnd, 0, 230, 2)
lnValue = 210
_Sol_SetLayeredWindowAttributes(Thisform.HWnd, 0, lnValue, 2)

en el destroy
CLEAR DLLS _Sol_SetWindowLong
CLEAR DLLS _Sol_SetLayeredWindowAttributes


Propiedad del formulario 
thisform.ShowWindow = 2
 y ya esta

Jose Antonio Blasco

unread,
Sep 23, 2014, 3:19:32 AM9/23/14
to Comunidad de Visual Foxpro en Español
Para que quede claro lo que quería conseguir, aquí os dejo un ejemplo de como se muestra la pantalla de splash.

Saludos.

Jose A. Blasco
Zaragoza - España
Visual FoxPro 9 SP2

"No hay camino hacia la libertad, la libertad es el camino" - Indira Gandhi
“Nunca te olvides de sonreír, porque el día que no sonrías  será un día perdido”  -  Charles Chaplin
“Todo el mundo quiere tener un amigo, pero pocos se toman la molestia de ser uno”
- Anónimo
splash.bmp
Reply all
Reply to author
Forward
0 new messages