Página 1 de 1

Re: Logo al inicio de una aplicaci

Publicado: Mar Jul 04, 2006 1:32 pm
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.

Re: Logo al inicio de una aplicaci

Publicado: Mar Jul 04, 2006 4:16 pm
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.

Re: Logo al inicio de una aplicaci

Publicado: Mar Jul 04, 2006 4:43 pm
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.
>

Re: Logo al inicio de una aplicaci

Publicado: Mar Jul 04, 2006 5:01 pm
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.

Re: Logo al inicio de una aplicaci

Publicado: Mar Jul 04, 2006 5:49 pm
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

Re: Logo al inicio de una aplicaci

Publicado: Mar Jul 04, 2006 6:00 pm
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

Re: Logo al inicio de una aplicaci

Publicado: Mar Jul 04, 2006 6:04 pm
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

Re: Logo al inicio de una aplicaci

Publicado: Mar Jul 04, 2006 7:14 pm
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

Re: Logo al inicio de una aplicaci

Publicado: Mié Jul 05, 2006 9:07 am
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

Re: Logo al inicio de una aplicaci

Publicado: Mié Jul 05, 2006 10:06 am
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