![]() |
Intraweb y ShowModal
Hola a Todos,
Estoy realizando un módulo en Intraweb para un producto de nuestra empresa. El tema es que al principio me parecio estupendo el tema del Intraweb ya que me dejaba trabajar casi igual que una aplicación de Win32 normal, y usando plantillas HTML la cosa quedaba bastante bonita. El problema que me encontrado ahora es que necesito mostrar un formulario Modal para que la aplicación funcione como el cliente quiere. El Intraweb no soporta forms modales, solo se puede utilizar Show debido a la arquitectura interna del propio Intraweb. ¿I porque lo necesito? Bien el proceso que se ha de realizar es bastante complejo, y entre medio el usuario va realizando acciones, como por ejemplo seleccionar una serie de Personas en una pantalla adicional. El resultado de esta seleccion hay que usarlo en medio del proceso para que este pueda concluir. Sin una ventana Modal no hay manera elegante de hacerlo. Me gustaria saber si alguien ha encontrado alguna solución alternativa para reproducir mas o menos el mismo dinamismo que te da el ShowModal en una aplicación windows normal. gracias por adelantado. |
Segun yo, eso lo tendrias que implementar con la ayuda de Java Script. puedes complementar tu aplicación Intraweb con esto, una busqueda en google te puede ayudar.
|
Gracias por la respuesta aunque creo que no me explicado bien. Cuando me referia a mostrar una ventana modal, no me referia al concepto de Ventana Modal en si, sino que al llamar al Show de una pagina Intraweb, la ejecución del código quedase en espera, i una vez cerrada la ventana retornara a la misma linea de código a continuacion del Show. No necesito mostrar una ventana modal en JavaScript, ya que si tengo que escribir el codigo en JavaScript (que no es posible) ¿De que me serviria el Intraweb?
|
Se me ocurre lo siguiente:
Suponemos q tienes la ventana1 y la ventana2. La ventana 1 llama con Show a la ventana 2 y pones Ventana1.Enabled := false y Ventana2.Style := fsStayOnTop. Con eso "imitas" un showmodal. Cuando salgas de la Ventana2 vuelves a poner Enabled la Venata1 y quitas el StayOnTop de la Ventana2. esto es para Delphi claro...si lo haces en otro lenguaje supongo q podrás hacer algo parecido. Un saludo. Edito: Si quieres q después de cerra la Ventana2 se ejecute código, llama a ese código desde la ventana1 cuando la cierres... |
Intraweb es Delphi, no es ningun otro lenguaje especial. Son componentes especiales para realizar aplicaciones WEB de manera mas intuitiva y con todo el potencial de Delphi. Y como ya he dicho antes no busco el efecto de las pantallas modales, busco que la ejecucion se pare despues del SHOW i vuelva ahi una vez cerrada la pantalla que se ha abierto con el SHOW.
|
Pues eso q yo sepa es imposible, si haces un show no puedes interrumpir el flujo del programa como pretendes a no ser q pongas un while en el q se kede todo el rato y te crees otro hilo desde el cual luego hagas q siga despues del while (con una variable booleana por ejemplo). Lo mejor yo creo q es q desde la nueva ventana q abres llames cuando se haga lo q se tiene q hacer a un procedimiento de la ventana1 y asi consigues lo q buscas.
Un saludo. |
ShowModal
In IntraWeb no existe el show o el showmodal todos las formas son mostradas en forma modal. Para lo que tu quieres hacer necesitas lo siguiente.
Digamos que el procedimiento x muestra la forma2 entonces : Código:
procedure forma.x Supongamos que lo vas a hacer en el procedimiento y: Código:
procedure forma2.y Saludos espero y te sirva de algo la información. Si tienes alguna duda solo pon el post aqui o mandame un correo. |
Orale mano me has sacado de apuro
|
Me gustaría reflotar este tema. Creo que muchos no entienden ya que la idea del Modal lo tomam como que lo importante es que el formulario vaya arriba pero lo mas importante en este caso es frenar la ejecución. He buscado mil veces y no encuentro como hacerlo.
La idea es la siguiente: En el FORM1 tengo una función F1 esa función hace algo así : functon TFORM1.F1 .....; begin Cero el FORM2 Muestro el FORM2 Espero a que cierren o acepten el FORM2 Y LO MAS IMPORTANE: En esta parte quiero hacer algo con el contenido del FORM2 end; Esto fuera de Intraweb sería: functon TFORM1.F1 .....; begin fr:=TFORM2.Create(self); fr.showmodal; //// Lo importante es bloquear la ejecución del código aqui Hago lo que necesito con la información proveniente de FORM2 fr.Free; end; En Intraweb lo intente de mil maneras, la primera y mas lógica que a uno se le ocurre es : functon TFORM1.F1 .....; begin fr:=TFORM2.Create(self); fr.show; while fr.visible do application.ProcessMessages; //// Lo importante es bloquear la ejecución del código aqui Hago lo que necesito con la información proveniente de FORM2 fr.Free; end; |
La franja horaria es GMT +2. Ahora son las 10:50:04. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi