[Lazarus-es] ¿Como hacer un Splash screen...?

Walter wmeson en gmail.com
Jue Dic 30 12:21:06 CET 2010


Hola Jose...
Muchas gracias por tus indicaciones, siempre muy completas.
Efectivamente, ahora mi Splash funciona, pero desaparece demasiado rápido,
asi voy a probar de implementar lo del retardo...pruebo y cuento...


Hello Walter,
>
> Wednesday, December 29, 2010, 9:04:08 PM, you wrote:
>
> W> Si...también lo vi, pero hay algo que falta...yo tengo dos form, el
> splash y
> W> el principal, lo usé para mi ejemplo y me daba un error como que no
> existía
> W> el splash.Usé el .lpr de ese link...algo me está saliendo mal...
> W> El splash lo pongo en el autocreate, pero, el form principal, también
> hay
> W> que "autocrearlo" ?
>
> A ver, para hacer un splash, no necesitas el estilo splash, eso es
> simplemente para que salga por encima de todas las demás ventanas (si
> mal no recuerdo).
>
> Un buen modo de hacerlo es diseñas el splash y el formulario principal
> (o más si hay). Vas al "autocreate" y pones el splash de primero, y
> luego el principal de segundo y detrás el resto si hay.
> Yo luego al principal le añado un Timer con 500 ms. y con
> enabled:=false. Luego en el OnShow del principal hago:
>
> procedure MyForm.OnShow(...)
> begin
>  if Assigned(frmSplash) then SplashTimer.Enabled:=true;
> end;
>
> Y en el evento OnTimer del Timer pongo:
>
> procedure TTimer1.OnTimer(....)
> begin
>  FreeAndNil(frmSplash);
>  TTimer1.Enabled:=false;
> end;
>
> De este modo consigues que el splash salga al principio de todo, y que
> se quede 1/2 segundo visible después de que cargue el formulario
> principal, asegurando que el splash no aparezca/desaparezca muy rápido
> y de la sensación de que ha sucedido un error.
>
> En el .lpr puedes necesitar (especialmente si no es Windows) meter
> después de la linea que crea el splash, un "frmSplash.Show;
> Application.ProcessMessages;" para que se dibuje el splash por
> completo.
>
> La secuencia de eventos que suceden es:
>
> 1) Se crea el splash.
> 2) Se muestra el splash.
> 3) Se crea el principal.
> 4) Se muestra el principal.
> 5) Se ejecuta OnShow del principal, activando el timer.
> 6) 500 ms después de desactiva el timer, y se elimina el splash Y se
> pone la variable del splash a NIL de modo que aunque se vuelva a
> ejecutar el OnShow del principal el timer no se activará de nuevo.
>
> --
> Best regards,
>  José
>
>
> _______________________________________________
> Lazarus-es mailing list
> Lazarus-es en lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
>



-- 
Walter Mesón
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus-es/attachments/20101230/3c9ffe5d/attachment-0002.html>


More information about the Lazarus-es mailing list