FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Application.Run VS Form1.Showmodal
Guenas!!
Tengo una duda existencial.... ¿que diferencia hay entre poner en el .dpr Application.Run o poner Form1.ShowModal (siendo Form1 el formulario principal)? ¿Hay alguna diferencia a efectos practicos? Gracias. |
#2
|
||||
|
||||
Hola,
|
#3
|
||||
|
||||
Cita:
Haz pruebas con formularios modales y verás si es lo que necesitas para el formulario principal de tu aplicación o no.
__________________
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. |
#4
|
||||
|
||||
Es decir cuando haces la llamada a un formulario modal. entra en el proceso del formulario actual y va a procesar todo lo que se pueda o quiera hacer dentro de ese formulario. luego cuando lo cierres o lo finalizes continuara con la carga del proceso que lo llamo.
Ejemplo
En estes caso el mensaje solo sera mostrado cuando Cierres el formulario "miformulario"
En este caso. luego de mostrar en pantalla tu formulario. a continuacion se mostrara el mensaje. es decir Cuando mostramos un formulario de manera Modal, se interumple el "Hilo del proceso" hasta que finalize la ejecucion del formulario. entonces se retorna al "hilo general del proceso" y continua su ejecucion. Hilo del proceso: No estoy seguro que se llame asi. pero leamolos como, las instrucciones a ejecutar dentro de un proceso lineal. |
#5
|
||||
|
||||
A ver, yo voy a preguntar también lo mismo que mmusashi:
¿que diferencia hay entre poner en el .dpr Application.Run o poner Form1.ShowModal (siendo Form1 el formulario principal)? ¿Hay alguna diferencia a efectos practicos? resaltando lo de efectos prácticos. Yo mismo he tenido esa duda y no creo que estemos contestando eso. Poner el código de uno u otro caso, no nos dice nada a efectos prácticos. Por otra parte esto: Cita:
¿Cuál es la diferencia aquí para efecto prácticos? Yo no veo ninguna. En ambos casos se interrumpe el proceso hasta que se cierra la ventana. ¿Cuál proceso? En este caso el flujo desde el begin al end. Quizá la hay- y fuerte -durante la vida de la aplicación, esto es, quizá haya algún efecto colateral importante; pero a simple vista yo no lo veo. // Saludos Última edición por roman fecha: 08-08-2006 a las 17:44:19. |
#6
|
||||
|
||||
Fé de erratas
En lo que comento respecto a lo de Neftali, estoy equivocado. Ciertamente hay diferencia entre mostrar modal o no al formulario principal. Pero es que esa no fue la pregunta original. La pregunta fue: ¿qué diferencia hay entre Form1.ShowModal y Application.Run?
// Saludos |
#7
|
||||
|
||||
mi respuesta queda totalmente invalidada, ya que no interprete correctamente lo que pedia mmusashi.
|
#8
|
||||
|
||||
Cita:
Con este código resula este ejemplo:
Y con este otro código resulta este otro:
Ambos resultados son bastante diferentes, sobre todo si se intenta acceder al segundo formulario.
__________________
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. |
#9
|
||||
|
||||
Les gusta rizar el rizo ¿verdad? Ok. Entonces repregunto:
Entre esto:
y un dpr normal:
¿cuál es la diferencia a efectos prácticos? Sigo sin ver ninguna. // Saludos |
#10
|
||||
|
||||
Voy a ver si puedo aclarar un poco.
Normalmente, una aplicación en Windows consiste de un ciclo que procesa los mensajes y que no termina sino hasta que se recibe el mensaje de finalización. Esto es básicamente lo que hace Application.Run. Por otra parte, una ventana modal es muy similar: entra a su propio ciclo de mensajes hasta que recibe el que la obliga a cerrarse. En resumen, en ambos casos se tiene algo similar a: Código:
REPEAT ObtenMensaje(Mensaje); ProcesaMensaje(Mensaje); UNTIL Mensaje = TERMINAR; Pero si dejamos que únicamente el formulario principal se cree de entrada (cosa que normalmente hacemos de cualquier forma), y creamos los demás conforme los requerimos, entonces todo ello se puede hacer desde el ciclo de mensajes del formulario principal mostrado modalmente. La pregunta es entonces, si el usar este ciclo de mensajes, el de un formulario en lugar del de la aplicación, tendrá algún efecto colateral. // Saludos |
#11
|
||||
|
||||
Hola,
Cita:
Resulta que este código fuente:
Es prácticamente igual que este otro:
Estos chicos de Borland... hay que ver lo que les gusta duplicar las cosas... Última edición por dec fecha: 09-08-2006 a las 08:06:00. |
#12
|
||||
|
||||
¿Has leido lo escrito?
Esa diferencia en el código es precisamente lo que lleva a uno a preguntarse qué pasa puesto que el efecto práctico parece ser el mismo según lo describí en el último mensaje. // Saludos Última edición por roman fecha: 09-08-2006 a las 08:10:06. |
#13
|
||||
|
||||
Hola,
Cita:
Cita:
Ahora bien, estúdiese el código fuente de ambos métodos y sus correspondientes implicaciones y, apuesto a que tienen que verse diferencias prácticas en caso de utilizar uno u otro método. A bote pronto diría lo más evidente: parece que en un caso ponemos en marcha la aplicación, y en otro ponemos en marcha un formulario de la aplicación. Estas cosas no parecen ser iguales grosso modo. Última edición por dec fecha: 09-08-2006 a las 08:44:16. |
#14
|
||||
|
||||
Cita:
// Saludos |
#15
|
||||
|
||||
Hola,
Cita:
|
#16
|
||||
|
||||
Hola, quizá esto aclare un poco.
Abran el demo MastApp que viene con Delphi. Es un demo medianamente complejo en tanto que incluye muchos formularios además del principal. Algunos abren modalmente y otros no. Este es el dpr del demo con el sólo cambio al final de omitir Application.Run y poner MainForm.ShowModal en su lugar.
Compilen la aplicación y jueguen un rato con ella y díganme que diferencias ven en su ejecución. // Saludos |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Cierro el form1 y se finaliza la aplicación :( | natalia | OOP | 6 | 17-07-2006 17:07:59 |
Cargar Form1->Width desde el Registro de Windows | JuanErasmo | C++ Builder | 3 | 20-09-2005 11:07:55 |
Poner una foto background en Form1 | garth | C++ Builder | 2 | 09-03-2005 20:14:05 |
Mantener Form1 siempre detrás de Form2 | Gorka | Varios | 1 | 13-10-2004 13:13:48 |
Form1 | calambito | Windows | 4 | 23-04-2004 06:36:01 |
|