Delphi 5. Have a TDBGrid attached to a TDataset. The dataset has a custom filter ie procedure TForm1.OnFilterRecord(DataSet: TDataSet; var Accept: Boolean); ...
Sometimes, the filter will only pick out a handful of records from a large dataset. Say 7 records. I notice the grid does not display any entries until all 7 have been found (the grid contains more than 7 rows). To find all 7, the entire file has been scanned. Is there a way to update the grid immediately: as soon as OnFilterRecord has returned Accept=true ? That is, the grid would populate rows (plop, plop, plop) as the entire file was scanned and each of the records found. The user could then CANCEL when they saw their record come up. Instead of waiting for the entire file to be filtered/scanned. Dataset.Refresh starts the while process over again: that is not what I want. Feels like I want a "grid.refresh" method: an Application.ProcessMessages sort of thing, to ensure the grid is actually displaying the record which I know has just been accepted in OnFilterRecord. Is there a trick, or am I deluding myself, and should take a different approach... ? Many thanks in advance.

