FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Cerrar Splash Imposible ...
No Consigo cerrar un Splash desde que puse el codigo para minimizar la pantalla principal como un icono en la barra de tareas al lado del reloj (trayicon), el Splash pasa de las lineas de cierre, he probado con un componente echo y con el truco de trucomania con iguales resultados:
splash.close; splash.free; splash:=nil; A que puede ser debido que el Splash siga visualizandose aunque yo lo cierre cuando se muestra el form principal... Gracias. |
#2
|
||||
|
||||
¿Cómo lo estas mostrando?...
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#3
|
|||
|
|||
He utilizado el truco #32 de trucomania y me funciona a la perfección. Te recomiendo que hagas una revisión del código, te dejo el link para que lo verifiques http://www.q3.nu/trucomania/ftesp.html.
|
#4
|
|||
|
|||
A ver utilize el truco de trucomania no para mostrar el splash sino para minimizar la ventana al lado del reloj (trayicon).
A ver tengo un formulario llamado Splash y ahi tengo una barra progressbar. En el principal el primero que se crea tengo:
y mas abajo tengo: Splash.Close; Splash.Free; Splash:=nil; Y Luego el Application.Run que era obvio por eso en una primera instancia no lo puse. Última edición por serhasae fecha: 06-05-2006 a las 00:52:10. |
#5
|
||||
|
||||
Pues a mí me falta el Application.Run
saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#6
|
||||
|
||||
Es obvio que debe estar.... pero ¿donde? jejeje, si lo tenías antes del Splash.Free, era fácil la respuesta
En principio, sustituyo el Application.ProcessMessages por un Splash.Update. Como la aplicación no está corriendo al completo, no me queda claro si va a procesar los mensajes bien. Las lineas: Splash.Close; Splash.Free; Splash:=nil las sustituyo por FreeAndNil(Splash), es exactamente lo mismo. Prueba y me cuentas por fa. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#7
|
|||
|
|||
A ver lepe he probado lo que me has dicho, con iguales resultados, no se cierra, lo que pasa es que se queda detras y no me habia fijado hasta ahora yo creia que era debido al trayicon que habia añadido pero al mirar codigo antiguo me he dado cuenta que nunca lo cerro hasta que se cierra totalmente la aplicación. Simplemente al ponerme delante la form principal pues quedaba detras y no lo veia...
Bueno alguna sugerencia a que es raro que no lo cierre. Saludos. |
#8
|
|||
|
|||
Solucion
En tu form principal, declara una variable pública llamada SplashScreenHandle:
var SplashScreenHandle:integer; En el fuente del projecto, añade una sección var como la siguiente: VAR SplashScreen:TSplashScreen; Dentro de la sección begin-end, añade el siguiente código al principio: Begin {Mostramos la Splash Screen} SplashScreen:=TSplashScreen.Create(Application); Splashscreen.show; SplashScreen.update; {Creamos la form principal} Application.createform(MainForm,MainFormUnit); MainFormUnit.SplashScreenHandle:=SplashScreen.handle; {Aqui el resto de tu projecto...} end. Y al Mostrar el Form: SendMessage(SplashScreenHandle,WM_CLOSE,0,0); Sacado del Rinconcito de Delphi. Última edición por serhasae fecha: 06-05-2006 a las 01:04:44. |
#9
|
||||
|
||||
una sugerencia.
este es el codigo de mi proyecto donde uso una splashscreen, a mi me funciona bien. lo aprendi de Trucomania.
Código:
program CdAPProy; uses Forms, CdAPForma in 'CdAPForma.pas' {Form1}, CdAPDatos in 'CdAPDatos.pas' {DataModule2: TDataModule}, Splash in 'Splash.pas' {Form2}; ... {$R *.res} begin Form2:=TForm2.Create(Application); Form2.Show; Form2.Update; Application.Initialize; Application.CreateForm(TForm1, Form1); Application.CreateForm(TDataModule2, DataModule2); ... Form2.Hide; Form2.Free; Application.Run; end. Código:
procedure TForm2.FormCreate(Sender: TObject); begin Self.Image1.Left:=0; Self.Image1.Top:=0; Self.Image1.Picture.LoadFromFile('splash.jpg'); Self.Image1.AutoSize:=True; Self.ClientHeight:=Self.Image1.Height; Self.ClientWidth:=Self.Image1.Width; Self.BorderStyle:=bsNone; Self.Position:=poDesktopCenter; end; |
#10
|
|||
|
|||
A mi me pasó algo parecido:
begin Application.Initialize; Application.Title := 'Project1'; SplashForm := TSplashForm.Create(Application); SplashForm.Show; SplashForm.Update; Application.CreateForm(TForm1, Form1); . . . Application.CreateForm(TForm3, Form3); Application.CreateForm(TSplashForm, SplashForm); SplashForm.Hide; SplashForm.Free; Application.Run; end. El problema era la linea roja, por que si lo estoy creando, ya no necesita ser creado de nuevo. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Splash Screen | jmedina | Varios | 6 | 15-08-2007 07:15:46 |
formulario tipo splash screen | fer21unmsm | Varios | 3 | 06-01-2006 23:03:22 |
Problemas en splash screen | ilichhernandez | Varios | 2 | 19-12-2005 06:45:17 |
Splash Screen con imagen | ibstk | Varios | 2 | 09-09-2004 01:05:51 |
Hacer un Splash con forma de una imagen | rjsitruiz | Gráficos | 6 | 09-07-2004 11:28:21 |
|