Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Recorrer filas de dbgrid sin q se note en el formulario (https://www.clubdelphi.com/foros/showthread.php?t=65135)

Viky 23-11-2009 22:35:33

Recorrer filas de dbgrid sin q se note en el formulario
 
Tengo un dbgrid asociado a un dataset; en determinado momento debo recorrer todas las filas del primero al ultimo.

Que propiedad debo configurar para q para el usuario sea transparente este recorrido?
No quiero que se muestre en el formulario las filas q se van recorriendo.

Gracias
Viky.

Casimiro Notevi 23-11-2009 22:57:31

Código:

dataset.disablecontrols;
...
...
dataset.enablecontrols;


Viky 24-11-2009 00:06:10

Funciono, Muchas Gracias. Solo que no tengo q tener el foco en el dbgrid, porq o sino se nota igual q va recorriendo.


Viky.

Casimiro Notevi 24-11-2009 09:58:57

Cita:

Empezado por Viky (Mensaje 347271)
Funciono, Muchas Gracias. Solo que no tengo q tener el foco en el dbgrid, porq o sino se nota igual q va recorriendo.
Viky.

No puede ser :)

Recuerda que tienes que deshabilitar antes de lo que vayas a hacer y habilitarlo cuando hayas terminado.
Este es un ejemplo un poco "bruto", pero para que se entienda claramente:
Código:

var suma:double;

try
  dbgrid.datasource.dataset.disablecontrols;
  dbgrid.datasource.dataset.first;
  while not dbgrid.datasource.dataset.eof do
  begin
    suma := suma + dbgrid.datasource.dataset.fieldbyname('importe').asfloat;
    dbgrid.datasource.dataset.next;
  end;
  showmessage('Total: '+floattostr(suma));
finally
  dbgrid.datasource.dataset.enablecontrols;
end;


rgstuamigo 24-11-2009 15:45:17

Tambien puedes mirar este hilo, si deseas que el registro que tienes activo no se pierda despues del recorrido.;)
Saludos...:)

agustibaldo 27-11-2009 15:57:39

Se me ocurre, también, que puedes borrar la propiedad DataSource del DBGrid antes de empezar a recorrer los registros y volver a asignarla una vez finalizado tu proceso.
Código Delphi [-]
  DBGrid1.DataSource := nil;
   // Inicio Proceso //
   ...
   ...
   ...
   // Fin Proceso //
   DBGrid1.DataSource := Datasource;

De esta manera, no se muestra el cursor trabajando y parece como que la tabla no hace nada.
Una vez vuelto a asignar, trabajas la grilla normalmente.
Espero te sirva esto.

Saludos.

Casimiro Notevi 27-11-2009 19:41:08

Para eso es que sirve disablecontrols y enablecontrols :)


La franja horaria es GMT +2. Ahora son las 13:04:03.

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