![]() |
![]() |
| Paypal | 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
|
|||
|
|||
|
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 |
|
#2
|
|||
|
|||
|
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. |
|
#3
|
|||
|
|||
|
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 |
|
#4
|
||||
|
||||
|
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! |
|
#5
|
|||
|
|||
|
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 |
|
#6
|
|||
|
|||
|
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. |
|
#7
|
|||
|
|||
|
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. |
|
#8
|
||||
|
||||
|
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. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|