In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Re: Logo al inicio de una aplicaci

Foro público de Xailer en español
Responder
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9463
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Re: Logo al inicio de una aplicaci

Mensaje por ignacio »

Bingen,
Crea un formulario tipo Splah y muestralo en el OnInitialize del formulario
principal. Algo así:
METHOD FormInitialize( oSender ) CLASS TForm1
::lVisible := .f.
WITH OBJECT TForm2():New( Self )
:ShowModal()
END WITH
::lVisible := .t.
RETURN Nil
Saludos
"XPRO-?????????-01" <bingen@muninser.com> escribió en el mensaje
news:[email=44aa4c6f@news.xailer.com...]44aa4c6f@news.xailer.com...[/email]
> Me gustaría saber como hacéis para mostrar el LOGO inicial de Xailer
> mientras se carga el programa, es decir, si hay un MsgLogo() o algo así
> como en FW.
>
> Gracias.
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Bingen Ugaldebere
Mensajes: 1310
Registrado: Mié Sep 26, 2007 7:12 pm

Re: Logo al inicio de una aplicaci

Mensaje por Bingen Ugaldebere »

Si esto si lo tenia claro pero era por saber si habí­a una función
directa, sin problema ya me la hago yo.
Muchas gracias.
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9463
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Re: Logo al inicio de una aplicaci

Mensaje por ignacio »

Bingen,
En mi opinión no tiene mucho sentido hacer una función para eso, ya que con
el IDE creas el formulario rapidamente y además puedes personalizarlo para
cada aplicación. Cuando te encuentres más cómodo con el IDE te darás cuenta
que no es necesario tener una batería de funciones para hacer procesos
simples como hacias hasta ahora con otras herramientas. Pero insisto, es tan
sólo mi opinión.
En el futuro Xailer soportorá la creación de formularios plantilla lo cual
puede parecerse a la funcionalidad que buscas.
Un saludo,
"Bingen" <bingen@muninser.com> escribió en el mensaje
news:[email=44aa785a@news.xailer.com...]44aa785a@news.xailer.com...[/email]
> Si esto si lo tenia claro pero era por saber si había una función directa,
> sin problema ya me la hago yo.
>
> Muchas gracias.
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Bingen Ugaldebere
Mensajes: 1310
Registrado: Mié Sep 26, 2007 7:12 pm

Re: Logo al inicio de una aplicaci

Mensaje por Bingen Ugaldebere »

Seguramente tienes razón Ignacio, cuesta dejar atrás las viejas
costumbres pero...
Uso en varios programas esta función para mostrar imágenes JPG, BMP y
tiene que ser un form bsSplash autoajustable pues lo que se enseña tiene
un tamaño variable, entonces...
¿Hay forma de saber el alto y el ancho real de un objeto tImage? por que
cuando pregunto por el siempre me dice 100x100 pixel que es el valor por
defecto de las propiedades nWidth y nHeight del objeto oImage.
Salu2.
Bingen Ugaldebere
Mensajes: 1310
Registrado: Mié Sep 26, 2007 7:12 pm

Re: Logo al inicio de una aplicaci

Mensaje por Bingen Ugaldebere »

Function MsgLogo( cImage, nSeconds )
Local oForm, oImagen, oImage1, oImage2, oTimer
DEFAULT nSeconds To 5
WITH OBJECT oImage1 := TPicture():New( GetActiveform() )
:cName := cImage
END
DEFINE FORM oForm OF Application:oMainForm ;
SIZE oImage1:nWidth+8, oImage1:nHeight+8 BORDERSTYLE bsSPLASH
@ 0,0 Image oImage2 Size oImage1:nWidth, oImage1:nHeight FILE
cImage ;
Transparent NONE NoTabStop OF oForm
DEFINE TIMER oTimer OF oForm Interval nSeconds*1000 ACTION
oForm:Close()
Activate Timer oTimer
ACTIVATE FORM oForm MODAL CENTER
DeActivate Timer oTimer
Return Nil
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9463
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Re: Logo al inicio de una aplicaci

Mensaje por ignacio »

Bingen,
> un tamaño variable, entonces...
Entonce eliges:
1) Ajustar el diálogo a la imagen en su evento OnInitialize
2) Ajustar la imagen al diálogo con la propiedad lAutFit
> ¿Hay forma de saber el alto y el ancho real de un objeto tImage? por que
> cuando pregunto por el siempre me dice 100x100 pixel que es el valor por
> defecto de las propiedades nWidth y nHeight del objeto oImage.
No hay que confundir el alto y el ancho del control donde se muestra la
imagen con el ancho y el alto de la propia imagen. Para saber las
dimensiones de la IMAGEN utiliza oImage:oPicture:nWidth y
oImage:oPicture:nHeight
Saludos
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9463
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Re: Logo al inicio de una aplicaci

Mensaje por ignacio »

Bingen,
No obstante, la forma más sencilla de poner una imagen en un formulario
consiguiendo además una perfecta transparencia con cualquier control que
pongas luego es utilizando la propiedad oForm:oBkGnd y y oForm:nBkGndMode
(blSTRETCH )
Saludos
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Re: Logo al inicio de una aplicaci

Mensaje por jfgimenez »

Bingen,
Yo lo haría así:
Function MsgLogo( cImage, nSeconds )
Local oForm, oImagen, oTimer
DEFAULT nSeconds To 5
DEFINE FORM oForm OF Application:oMainForm BORDERSTYLE bsSPLASH
oForm:oBkgnd := cImage
oForm:SetClientSize( oImagen:nWidth, oImagen:nHeight )
DEFINE TIMER oTimer OF oForm Interval nSeconds*1000 ACTION oForm:Close()
Activate Timer oTimer
ACTIVATE FORM oForm MODAL CENTER
oTimer:End()
Return Nil
--
Un saludo,
José F. Giménez
http://www.xailer.com
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Bingen Ugaldebere
Mensajes: 1310
Registrado: Mié Sep 26, 2007 7:12 pm

Re: Logo al inicio de una aplicaci

Mensaje por Bingen Ugaldebere »

Mucho mas elegante, pero no te falta algo como definir el objeto para
saber el tamaño??
Function MsgLogo( cImage, nSeconds )
Local oForm, oImagen, oTimer
DEFAULT nSeconds To 5
WITH OBJECT oImagen := TPicture():New( GetActiveform() )
:cName := cImage
END
DEFINE FORM oForm OF Application:oMainForm BORDERSTYLE bsSPLASH
oForm:oBkgnd := cImage
oForm:SetClientSize( oImagen:nWidth, oImagen:nHeight )
oForm:OnLButtonDown := { || oForm:Close() }
DEFINE TIMER oTimer OF oForm Interval nSeconds*1000 ACTION
oForm:Close()
Activate Timer oTimer
ACTIVATE FORM oForm MODAL CENTER
oTimer:End()
Return Nil
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Re: Logo al inicio de una aplicaci

Mensaje por jfgimenez »

Bingen,
> Mucho mas elegante, pero no te falta algo como definir el objeto para
> saber el tamaño??
Aquí está la magia:
> oForm:oBkgnd := cImage
Cuando se asigna el nombre de la imagen a la propiedad oBkgnd de TForm, esta
se encarga de crear un objeto TPicture y cargar la imagen. Por lo tanto, a
partir de ese momento ya podemos saber sus dimensiones. Pero tienes razón,
hay un fallo:
> oForm:SetClientSize( oImagen:nWidth, oImagen:nHeight )
oImagen no contiene nada (o mejor dicho, es Nil). Debería ser:
oForm:SetClientSize( oForm:oBkgnd:nWidth, oForm:oBkgnd:nHeight )
--
Un saludo,
José F. Giménez
http://www.xailer.com
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Responder