Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Ver el proceso de carga de un formulario (https://www.clubdelphi.com/foros/showthread.php?t=65357)

rufo 08-12-2009 17:56:15

Ver el proceso de carga de un formulario
 
Hola amigos aqui de nuevo consultando a ustedes,resulta que tengo una aplicacion que uso Mainmenu en el cual cada menu se enlaza al formulario pero dichos formularios se conecta a una base de datos en el cual funciona bien, mi pregunta es la siguiente como puedo hacer que cuando le de un clic en el menu que elija me aparesca un progressbar indicando al usuario que esta cargando la aplicacion y cuando termine me muestre el formulario que elegi, quiero hacer incapie que no tengo ni la menor idea de como ponerlo, espero que me auxilien y de antemano muchas gracias.

Uso delphi 5

Ñuño Martínez 09-12-2009 10:02:45

Pues fácil: Creas la barra de progreso asignándole como valor máximo el número de acciones que va a realizar. Luego, después de cada acción incrementas el estado de dicha barra, llamando a "Application.ProcessMessages" justo después para que se actualice.

Neftali [Germán.Estévez] 09-12-2009 10:22:48

Para colocar una barra de progreso, debes tener un proceso que se pueda dividir en pasos, de esa forma en cada paso puedes incrementar la posición de la barra.
Si tu formulario hace muchas cosas al cargar, puedes mostrar un formulario con una barra e incrementar la posición de esa barra después de cada operación, pero para eso se debe cumplir lo que antes te he dicho.

Lo que te quiero explicar es que si haces esto no se puede colocar una barra:

Código Delphi [-]
  Form1.Open;

Si tivueras algo así:

Código Delphi [-]
  op1;
  op2,
  op3;
  op4;
  ...

Podrías ir incrementando después de cada operación ese progreso.

Hay otras opciones como utilizar hilos o componentes de tipo "waitbar", pero si no das más detalles o colocas algo de código, es difícil saber cual de estas opciones (y otras que puede haber) es la que puede resultar útil en tu caso.

rufo 09-12-2009 19:07:00

Gracias amigos por responder pero quede igual como al principio, ya que no tengo nada de codigo y queria ver si ustedes me pueden facilitar esa parte ya que en si quiero cuando elija una opcion de un submenu para que me abra una ventana me aparesca el proceso de carga, bueno espero que me ayuden

rgstuamigo 09-12-2009 19:13:59

Cuando no se conoce las operaciones o no se puede determinar en que momento incrementar el ProgressBar, creo que lo mejor que veo es usar un ProgressBar Infinito igual al que sale al inciar Windows;), de esa manera te evitarias tantos lios y demasiada programacion.
Podrias mostrar la ventana con el progressbar Infinito al momemto de llamar al formulario que se esta cargando y cuando termine simplemete deshabilitarlo.:rolleyes:;).
Saludos...:)

rufo 09-12-2009 19:44:49

gracias pero como lo hago ese es la cuestion????

rgstuamigo 09-12-2009 20:13:16

Cita:

Empezado por rufo (Mensaje 348541)
gracias pero como lo hago ese es la cuestion????

Pues chequea este foro, aunque :rolleyes: creo que el tema ya se ha tocado en el club en alguna otra oportunidad, seria bueno que hicieras una busqueda. con palabras clave como "ProgressBar" ó "ProgressBar Infinito";)
Saludos...:)

rufo 09-12-2009 20:49:25

Ok amigos les podre en donde quiero poner o aparecer el progressbar este es el codigo de mi Mainmenu

Código:

procedure TSUPERMERCADO.Modificaciones2Click(Sender: TObject);
begin
 modificacion_proveedor.Show;
 supermercado.Enabled:=false;
end;

entonces cuando yo le de clic al submenu modificacion_proveedor como esta conectada a una tabla que contiene registros tarda un poco entonces para que el usuario no piense que esta congelada su compu o el programa que me muestre el Progressbar indicandole que esta cargando, espero que me ayuden por que me esta volviendo loco, ya que es la primera vez que hago esto y gracias.

rgstuamigo 09-12-2009 21:22:54

Buscando en foro he encontrado un ProgressBar Ciclico en el truco nro 471.
Ahora otra solucion a tu problema es poner otro cursor al puntero del Raton al momento de cargar tu formulario,para que el usario sepa que se esta cargando, y al terminar volver a poner el cursor que se tenia antes;
Mas o menos asi siguiendo tu ejemplo:

Código Delphi [-]
procedure TSUPERMERCADO.Modificaciones2Click(Sender: TObject);
var aux:TCursor; 
begin
  aux:=Screen.Cursor;
   try
    Screen.Cursor:=crHourGlass;//cambio de cursor
    modificacion_proveedor.Show;
    supermercado.Enabled:=false;
  finally
   Screen.Cursor:=aux;//recupero el anterior cursor
  end;
end;
Saludos...:)

Lepe 09-12-2009 21:44:31

Retrasando los eventos...

Supongo haces las operaciones en el evento OnCreate del form que se está creando y claro... antes de crearse no puede mostrarse, así que no puedes mostrar el progressbar.

En el foro se habló de crear un evento nuevo llamado afterShow http://www.clubdelphi.com/foros/show...11&postcount=2 con eso puedes hacer que se muestre y después mostrar el progressbar.

En ese mismo hilo, también tienes otra forma con una ventana Always ontop que se activa antes de crear la ventana lentorra http://www.clubdelphi.com/foros/show...2&postcount=16

Neftali [Germán.Estévez] 09-12-2009 23:10:56

¿Qué haces en el OnCreate y/o en el OnShow del form?


La franja horaria es GMT +2. Ahora son las 10:41:32.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi