Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   panel siempre visible (https://www.clubdelphi.com/foros/showthread.php?t=76073)

RebeccaGL 06-10-2011 22:32:02

panel siempre visible
 
tengo una tabla con mil registros, cuando recalculo toda la tabla habro un panel con un gaugebar, pero, el problema es que caundo me voy hacer otra cosa como mirar otra programa el panel con el gaugebar queda en blanco, he puesto panel1.refresh, gaugebar.refresh pero igual con solo poner una ventana ensima de mi panel de estado este se pone en blanco y parece que mi programa se colgo.

Como puedo hacer para que se vea siempre el panel con con el gaugebar, y no se pongan en blanco, para que el usuario vea en donde se encuentra el proceso de recalculo de la tabla.


Código Delphi [-]
    Gauge_STATUSBAR.Progress := 0;
    Query1.First;
    while not (Query1.Eof) do
    begin
      Panel_STATUS.Refresh;
      Calcular_Valores
      Query1.Next;
      Gauge_STATUSBAR.Progress := Gauge_STATUSBAR.Progress + 1;
    end;


saludos.

ecfisa 06-10-2011 23:00:27

Hola connor.

Probá de este modo:
Código Delphi [-]
  Gauge_STATUSBAR.Progress := 0;
  Query1.First;
  while not (Query1.Eof) do
  begin
     Calcular_Valores
     Query1.Next;
     Gauge_STATUSBAR.Progress := Gauge_STATUSBAR.Progress + 1;
     Application.ProcessMessages;
  end;

Saludos.

oscarac 06-10-2011 23:57:23

el gauge no se pone en blanco....

lo que no veo es si has especificado el maximo....
hasta donde contara el gauge para poder pintar el % que corresponde

te recomendaria que utilices algo como un query.reccount para establecer el maximo (aunque lei en un mensaje previo que el reccount no funciona con todos los dataset???)

prueba y comentas

ecfisa 07-10-2011 00:31:37

Hola oscarac.

La propiedad RecordCount no arroja los resultados esperados en varias BD cliente/servidor y el motivo es que es muy costoso en recursos traer todos los registros del servidor, por lo que llegan los que son necesarios.
Por ejemplo el componente TIBQuery, tiene el método FetchAll que fuerza la recuperación de todos los registros y los almacena localmente. Demás está decir que no es buena idea usarlo si hay muchos registros involucrados. ;)
Consultando a la propiedad RecordCount en esos casos, se obtendrán los registros que se necesitaron para la operación previa solicitada pero no la totalidad del los mismos.

Por otro lado funciona sin ningún problema con bases de datos de escritorio tipo Paradox, Access, etc.

Un saludo.

RebeccaGL 07-10-2011 18:29:37

Cita:

Empezado por ecfisa (Mensaje 414817)
Hola connor.

Probá de este modo:

Código Delphi [-]
Gauge_STATUSBAR.Progress := 0;
Query1.First;
while not (Query1.Eof) do
begin
Calcular_Valores
Query1.Next;
Gauge_STATUSBAR.Progress := Gauge_STATUSBAR.Progress + 1;
Application.ProcessMessages;
end;





Saludos.

ecfisa gracias, tenias razon eso me soluciono el problema, y tambien gracias a los demas por contestar.



saudos.


La franja horaria es GMT +2. Ahora son las 19:16:59.

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