FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Programa comando
Hola foro!
Les comento mi problema: Tengo un programita comando que recibe dos parametros...bueno... eso es lo de menos porque eso funciona todo bien, el problema los tengo al hacer lo siguiente: en el evento OnShow del formulario principal tengo código que procesa los parametros ingresados (todo esto mostrando una barra que muestra como va el progreso...), el problema es que se ejecuta primero el código y luego muestra el formulario, es decir una vez que sale del método OnShow recién ahí muestra en la pantalla el form. Una solución seria poner algo como un TTimer con un intervalo de 2 segundos y habilitarlo en el OnShow, pero me parece medio feo, seguramente debe haber algo mejor... Bueno, muchas gracias... Diego. |
#2
|
||||
|
||||
No entiendo muy bien el planteo, pero no puedes cargar las cosas antes de hacer un Form.Show??
¿Qué es un programa comando?
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#3
|
||||
|
||||
Cita:
PostMessage(Handle, CM_AFTERSHOW, 0, 0); y en el manejador de dicho mensaje hago los cálculos. Al usar PostMessage en lugar de SendMessage te aseguras de que el mensaje no comienza a procesarse sino hasta que se terminen de procesar los mensajes que ya haya en la cola de mensajes, lo cual incluye todos los necesarios para que el formulario termine de cargarse. // Saludos |
#4
|
||||
|
||||
To lo haria en el dpr, algo asi
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
#5
|
|||
|
|||
¿Que tal con una ventana auxiliar (un form simple que no es creado al inicio) que muestre el estado de avance del cálculo?
Yo hice esto y funcionó muy bien, en el onCreate del form principal: - Creas la ventana auxiliar (Ojo, es un form que NO se crea al inicio, eso te fijas en el "proyect source"). - actualizas la barra de progreso en la ventana las veces necesarias. - Eliminas la ventana auxiliar. Además, eventualmente te servirá como "splashscreen" de esas que muestran el avance de la carga del programa, gráficos, sonidos, etc. |
#6
|
|||
|
|||
Hola:
Hay muchas formas de conseguir lo que quieres, además de lo que ya te han explicado los compañeros, también te puede servir algo muy sencillo, poner el código en el OnActivate en lugar de en el OnShow. Sólo debes de controlar que no vuelva a pasar por ese evento más de una vez (por si acaso pulsa en otra ventana y luego vuelve de nuevo a ella). Saludos.
__________________
:) |
|
|
|