Ver Mensaje Individual
  #3  
Antiguo 20-09-2017
Avatar de Young
Young Young is offline
Miembro
 
Registrado: abr 2006
Ubicación: San Felipe, Chile
Posts: 86
Reputación: 19
Young Va por buen camino
Me parece que 1 o 2 segundos no es mucho dependiendo de la cantidad de registros, lo que si molesta en estas situaciones es que se congele el formulario, por lo tanto te sugiero que lo hagas en una tareas separada:

Código Delphi [-]
uses System.Threading;

.
.

TTask.Run(
    procedure
    begin
with DBGridProveedores.DataSource do begin DataSet.First; SetLength(provSelecc, DBGridProveedores.SelectedRows.Count); //Establecer el largo del array SetLength(provSeleccNames, DBGridProveedores.SelectedRows.Count); //Establecer el largo del array while not DataSet.Eof do begin if DBGridProveedores.SelectedRows.Find(DataSet.Bookmark, inx) then //Si la fila fue seleccioanda begin provSelecc[i] := DBGridProveedores.Columns[0].Field.AsString; //Guardo en el array provSeleccNames[i] := DBGridProveedores.Columns[1].Field.AsString; //Guardo en el array Inc(i); end; DataSet.Next; end; // ShowMessage(IntToStr(length(provSelecc))); //Muestro cantidad de filas seleccionadas end;
end);

¿Por otro lado porque haces la operacion sobre el dbgrid y no sobre el dataset?

Saludos.
Responder Con Cita