Ver Mensaje Individual
  #4  
Antiguo 16-12-2015
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Reputación: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Con un poco de imaginacion?

Código Delphi [-]
procedure TForm1.ClientDataSet1AfterScroll(DataSet: TDataSet);
begin
  Caption := 'procesando...';
  Sleep(1000); // 1 segundo
  ShowMessage('procesado');
  Caption := 'Form1';
end;

procedure TForm1.ClientDataSet1BeforeScroll(DataSet: TDataSet);
begin
  ClientDataSet1.AfterScroll := NIL;
  Timer1.Enabled := False;
  Timer1.Enabled := True;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Timer1.Enabled := False;
  Timer1.Interval := 500; // 500 ms
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  // pasaron 0,5 segundos desde el ultimo scroll, habilitar evento
  Timer1.Enabled := False;
  if not Assigned(ClientDataSet1.AfterScroll) then
  begin
    ClientDataSet1.AfterScroll := ClientDataSet1AfterScroll;
    // hay que llamar al evento
    ClientDataSet1AfterScroll(ClientDataSet1);
  end;
end;

Rustico, pero puede servir
Responder Con Cita