FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Que salte una ventana a los 10 segundos
Hola.
En una aplicación vcl quiero que al ejecutarse, salte el form1, pero que el form2 salte encima del 1 y que el usuario no pueda manejar el form1 hasta que cierre el dos. Para ello he puesto el siguiente code: procedure TForm1.FormActivate(Sender: TObject); begin Form2.ShowModal; end; Funciona. Pero quiero que un Form3 salte a los 10 segundos de que el Form 1 esté abierto. Esto como lo puedo hacer? |
#2
|
||||
|
||||
Añade al form1 un Timer con Interval=10000 y en el evento OnTimer pon lo siguiente:
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#3
|
|||
|
|||
Como pongo un timer al form1
Hola Neftali.
Como añado un timer con intervalo 10000 al form1 ? Y en los eventos del form1, no encuentro ninguno que sea OnTimer para ponerle el code: Form3.ShowModal; Timer1.Enabled := False; Lo siento pero soy nuevo. Gracias. |
#4
|
|||
|
|||
Hola:
El timer es un componente que tienes tu que añadir, está en la pestaña System. El intervalo es una propiedad del TTimer, la propiedad Interval, le pones ese valor y listo. Un saludo. |
#5
|
|||
|
|||
Gracias. Ya lo tengo.
Hola
Perfecto Ya lo tengo Funciona. Te da una alegría cuando van funcionando las cosas... |
#6
|
|||
|
|||
Así salta cada 10 segundos. Y para que sea una vez sólo?
Una cosa
Lo que me he fijado es que así salta esta ventana cada 10 segundos. Pero si lo que quiero es que salte sólo una vez a los 10 segundos de que se ejecute la aplicación? Como lo hago? |
#7
|
|||
|
|||
Ya esta
Ni caso.
Se me olvidó poner debajo: Timer1.Enabled := False; ya funciona correctamente. Gracias |
#8
|
|||
|
|||
Con ShowModal da error
Hola
Lo pongo asi: Form3.ShowModal; Timer1.Enabled := False; Y al run me da el error: exception class EInvalid Operation with message 'Cannot make a visible window modal' Y si en vez de ShowModal pongo Show, funciona pero lo que yo quiero es que la ventana que salga a los 10 segundos tengan que cerrarse antes de poder seguir haciendo algo en el form de abajo. Como lo puedo hacer? Gracias. |
#9
|
||||
|
||||
Saludos
Chequea si en la propiedad FormStyle del Form3 estA en fsNormal, si no estA asi ponlo
__________________
Van Troi De León (Not) Guía, Code vB:=Delphi-SQL, ¿Cómo? Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto! |
#10
|
||||
|
||||
Hola,
Lo que ocurre es que se está tratando de mostrar de forma "modal" un formulario que está ya mostrándose, sea de forma "modal" o no. ¿No es eso? |
#11
|
|||
|
|||
Si, está en fsNormal
Hola
Si está en formStyle: fsNormal, y no funciona. Hola Dec. No, no se está mostrando todavía el form3. Lo que quiero es que cuando corre la aplicación salta el form1. A los 5 segundos salte el form2 y a los 10 salte el form3. Para ello en el form1 pongo dos timer. El primero llamo al form 2 a los 5 segundos, y en el timer2 llamo al form3 a los 10 segundos. El form2 quiero que los usuarios puedan manejar el form1 o form2 independientemente. Para ello lo pongo de forma Show: Form2.Show; Timer1.Enabled := False; funciona. El form3 cuando salte quiero que los usuarios no puedan manejar el form1 hasta que cierren la ventana del form3, para ello lo pongo en ShowModal: Form3.ShowModal; Timer2.Enabled := False; no funciona, me salta el error: exception class EInvalid Operation with message 'Cannot make a visible window modal' Pero si lo pongo igual que el form2 si funciona, es decir los dos en show: Form.3Show; Timer2.Enabled := False; Pero así cuando salta la ventana del form3, los usuarios pueden acceder al form1 sin cerrar la ventana del form3. Gracias |
#12
|
|||
|
|||
Hola:
Dices que no se está mostrando el form3 pero el mensaje según mi no muy buen inglés parece que dice lo contrario: 'Cannot make a visible window modal' -> No puedo hacer modal una ventana visible ¿Como creas el form3?. Si lo tienes en Auto-create forms pásalo a Available Forms y créalo manualmente antes de mostrarlo en ShowModal, a ver si funciona. Un saludo. |
#13
|
|||
|
|||
Tengo todos los form en autocreate
Hola
Tengo todos los form en autocreate. Al cambiarlo a available me salta otro erros y tampoco puedo llamarlo desde el botón. Cuando desde el form1 llamo al form3 con un boton en forma modal: procedure TForm1.Button1Click(Sender: TObject); begin Form3.ShowModal; end; Me funciona correctamente. Salta el form3 y hasta que no cierro el form3 no puedo actuar sobre el form1. Hay alguna otra forma de poderlo hacer? Es decir que al ejecutar la aplicación salte el Form1 y encima el form3 y que no se pueda actuar sobre el form1 hasta que se cierre el form3. El form3 es de registro de usuarios. Nombre y password. Y hasta que no reconozca los datos nombre y usuario no se cierra el form3 y no se pueda actuar sobre el form1 ? Gracias |
#14
|
||||
|
||||
Saludos
1) El form1 ponlo en AutoCreate y los demas en Availables 2) Crear el form3: 3) Todos los form en FormStyle:=fsNormal;
__________________
Van Troi De León (Not) Guía, Code vB:=Delphi-SQL, ¿Cómo? Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto! |
#15
|
|||
|
|||
Ya esta hecho, hay un error en timer2
Hola
Ya he puesto todos los form menos el 1 en available. He puesto el code para llamar a los otros forms desde botones y funciona. Pero.... Lo que me sigue sin funcionar es el timer para llamar al form3. Si salta y si es en modal por lo que hasta que no se cierra no se puede manejar el form1. Pero me salta no una sino indefinidamente. Con Show salta una vez, con ShowModal salta indefinidamente, uno encima del otro. Con el botón funciona: procedure TForm1.Button1Click(Sender: TObject); begin Form3 :=TForm3.Create(self); Form3.ShowModal; end; Timer 1 con show funciona: procedure TForm1.Timer1Timer(Sender: TObject); begin Form9 :=TForm9.Create (self); Form9.Show; Timer1.Enabled :=False; end; Timer 2 con showmodal salta el form3 una vez encima de si mismo indefinidamente: procedure TForm1.Timer2Timer(Sender: TObject); begin Form3:=TForm3.Create (self); Form3.ShowModal; Timer2.Enabled :=False; end; Que puedo hacer para que el form3 salte sólo una vez? Gracias |
#16
|
|||
|
|||
Hola:
Yo creo que vtdleon tiene razón, el form1 ponlo en AutoCreate y los demas en Availables, no se que otro tipo de error te puede dar con eso. Lo que intentas hacer quizás se pueda con un solo form, en él pones un TPageControl con tres páginas (TTabSheet). Para empezar solo TabVisible a true a la primera página y las otras dos False para que no se puedan ver. Al dar al botón que dices se puede hacer visible también la solapa de la segunda con lo que puedes entrar en las dos cuando quieras, pero cuando des al botón para ir a la tercera te sitúas en ella y ocultas todas las solapas y así solo podrás estar en la tercera, cuando salgas de la tercera visualizas las solapas de la 1 y la 2. Resumiendo, que vas mostrando u ocultado pestañas según te convenga dejar o no dejar entrar en la página. Un saludo. |
#17
|
|||
|
|||
El error es que salta el form3 con timer2 indefinidamente
Hola
Gracias por tu idea pero es que la aplicación al final tendrá 10 forms y me cuadra mas de la otra forma. Lo único es que me salta indefinidamente el form3. No sólo una vez. Gracias. |
#18
|
||||
|
||||
Saludos.
Creo saber por que te sale uno arriba de otro. Cuando llamas a un formulario en forma MODAL, el proceso que llamo la forma se detiene hasta que cierres el formulario modal Por Ej:
Pon este codigo.
Suerte
__________________
Van Troi De León (Not) Guía, Code vB:=Delphi-SQL, ¿Cómo? Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto! Última edición por vtdeleon fecha: 08-06-2005 a las 02:31:17. |
#19
|
|||
|
|||
perfecto-ya está funcionando
Ya está funcionando correctamente.
Saltan las dos ventanas una show y otre showmodal y una vez. Perfecto ese era el fallo. No daba paso a cerrar el timer y la línea se ejecutaba todo el rato. Solucionado Gracias. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
|