SoloCodigo

Programación General => C/C++ => C++ Builder => Mensaje iniciado por: Ithilien en Viernes 22 de Junio de 2007, 01:52

Título: Cargar Un Formulario Correctamente
Publicado por: Ithilien en Viernes 22 de Junio de 2007, 01:52
Hola,

      estoy haciendo una aplicación tal que cuando se pulsa un boton de un formulario determinado, el evento hace que se abra otro y comience a avanzar una progressbar. El problema que tengo es que cuando esto ocurre, la imagen que hay en el formulario que la uso como "fondo" del mismo no me aparece. Tampoco aparecen los TLabel que hay. Entonces mi pregunta es:¿hay alguna forma de que se cargue el formulario completamente y luego comience el cómputo del progressbar?

Muchas gracias.

P.D.:Si sirve de algo, la función que invoca el click en el botón es Form->Show();
Título: Re: Cargar Un Formulario Correctamente
Publicado por: weps84 en Viernes 22 de Junio de 2007, 05:42
pues te aconsejaria el siguiente codigo:

metodo onclick del raton{
             Form2 = new TForm2(Application);
             Form2->ShowModal();
             delete Form2;
}

ojo suponiendo que la Forma se llama Form2, solo cambiale Form2 por el nombre de la Forma que quieres abrir

 :lightsabre:  :lightsabre:  :lightsabre:  :lightsabre:  :lightsabre:  :lightsabre:  :lightsabre:  :lightsabre:  :lightsabre:  :lightsabre:  :lightsabre:
Título: Re: Cargar Un Formulario Correctamente
Publicado por: Ithilien en Viernes 22 de Junio de 2007, 18:30
Gracias por responder, pero no me sirve, ya que al hacer ( el formulario se llama FormCargar )
Código: Text
  1.  
  2. FormCargar->ShowModal();
  3. ...
  4. while(......){
  5. ....
  6. FormCargar->ProgressBar->Position++;
  7. ...
  8. }//Y resto de código que forma parte del proceso de comprobación de la existencia de un fichero
  9.  
  10.  
El formulario se queda parado, sin hacer nada, ya que he estado leyendo que ShowModal() detiene la ejecución o algo así hasta que se produzca un evento o similar... ( corregidme si me equivoco ). Entonces no aparece la barra de progreso avanzando ni nada.

A lo mejor no me expliqué con claridad en el primer post. Necesito que se cargue el formulario entero y posteriormente necesito hacer una determinada tarea. Esa tarea no está en el evento OnShow del formulario que cargo, sino que desde otro llamador hago FormCargar->Show(); y luego hago el resto, como se podía ver en el fragmento de código anterior ( es decir, que desde el formulario llamador se hace todo ).

He probado a ponerlo en el evento OnShow de FormCargar, pero también me pasa lo mismo, esto es, hasta que no se completa la tarea no aparece el formulario dibujado completamente, y se me ve entero en blanco salvo la ProgressBar, que se ve como avanza...

A ver si alguien sabe como arreglar el problemilla....

Saludos!
Título: Re: Cargar Un Formulario Correctamente
Publicado por: weps84 en Sábado 23 de Junio de 2007, 04:31
por que no lo haces pero con un timmer en vez de un while
Título: Re: Cargar Un Formulario Correctamente
Publicado por: Ithilien en Sábado 23 de Junio de 2007, 11:53
Muchas gracias. Funcionó a la perfección!!!!!
Título: Re: Cargar Un Formulario Correctamente
Publicado por: weps84 en Domingo 24 de Junio de 2007, 06:56
de nada viejo