Hola Jose...<br>Muchas gracias por tus indicaciones, siempre muy completas.<br>Efectivamente, ahora mi Splash funciona, pero desaparece demasiado rápido, asi voy a probar de implementar lo del retardo...pruebo y cuento...<br>
<br><div class="gmail_quote"><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">Hello Walter,<br>
<br>
Wednesday, December 29, 2010, 9:04:08 PM, you wrote:<br>
<br>
W> Si...también lo vi, pero hay algo que falta...yo tengo dos form, el splash y<br>
W> el principal, lo usé para mi ejemplo y me daba un error como que no existía<br>
W> el splash.Usé el .lpr de ese link...algo me está saliendo mal...<br>
W> El splash lo pongo en el autocreate, pero, el form principal, también hay<br>
W> que "autocrearlo" ?<br>
<br>
A ver, para hacer un splash, no necesitas el estilo splash, eso es<br>
simplemente para que salga por encima de todas las demás ventanas (si<br>
mal no recuerdo).<br>
<br>
Un buen modo de hacerlo es diseñas el splash y el formulario principal<br>
(o más si hay). Vas al "autocreate" y pones el splash de primero, y<br>
luego el principal de segundo y detrás el resto si hay.<br>
Yo luego al principal le añado un Timer con 500 ms. y con<br>
enabled:=false. Luego en el OnShow del principal hago:<br>
<br>
procedure MyForm.OnShow(...)<br>
begin<br>
if Assigned(frmSplash) then SplashTimer.Enabled:=true;<br>
end;<br>
<br>
Y en el evento OnTimer del Timer pongo:<br>
<br>
procedure TTimer1.OnTimer(....)<br>
begin<br>
FreeAndNil(frmSplash);<br>
TTimer1.Enabled:=false;<br>
end;<br>
<br>
De este modo consigues que el splash salga al principio de todo, y que<br>
se quede 1/2 segundo visible después de que cargue el formulario<br>
principal, asegurando que el splash no aparezca/desaparezca muy rápido<br>
y de la sensación de que ha sucedido un error.<br>
<br>
En el .lpr puedes necesitar (especialmente si no es Windows) meter<br>
después de la linea que crea el splash, un "frmSplash.Show;<br>
Application.ProcessMessages;" para que se dibuje el splash por<br>
completo.<br>
<br>
La secuencia de eventos que suceden es:<br>
<br>
1) Se crea el splash.<br>
2) Se muestra el splash.<br>
3) Se crea el principal.<br>
4) Se muestra el principal.<br>
5) Se ejecuta OnShow del principal, activando el timer.<br>
6) 500 ms después de desactiva el timer, y se elimina el splash Y se<br>
pone la variable del splash a NIL de modo que aunque se vuelva a<br>
ejecutar el OnShow del principal el timer no se activará de nuevo.<br>
<br>
--<br>
Best regards,<br>
<font color="#888888"> José<br>
</font><div><div></div><div class="h5"><br>
<br>
_______________________________________________<br>
Lazarus-es mailing list<br>
<a href="mailto:Lazarus-es@lists.lazarus.freepascal.org">Lazarus-es@lists.lazarus.freepascal.org</a><br>
<a href="http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es" target="_blank">http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Walter Mesón<br>