Hola.
Si te entedí bién podrías hacer:
Código Delphi
[-]
procedure SelectRowsUntil(gr:TDBGrid; Monto: Double);
var
ds : TDataSet;
sum: Double;
begin
sum := 0;
ds := gr.DataSource.DataSet;
ds.DisableControls;
try
while not ds.Eof and (sum <= Monto) do
begin
sum := sum + ds.FieldByName('MONTO_DEL_PAGO').AsFloat;
if sum <= Monto then
gr.SelectedRows.CurrentRowSelected := True;
ds.Next;
end;
finally
ds.EnableControls;
end;
end;
Ejemplo de uso:
Código Delphi
[-]
procedure TForm1.Button1Click(Sender: TObject);
begin
SelectRowsUntil(DBGrid1, 100);
end;
Saludos