Filtered = true does not position on first rec

code in latest release:

procedure TDAMemoryDataset.DoFilterRecords;
var
pos: TBookmarkData;
begin

if Active then begin
if pos = nil then
FRecordPos := -1
else
FRecordPos := IntFindRecordID(pos);
if (FRecordPos = -1) then begin
First;
if (RecordCount > 0) then FRecordPos := 0;
end;
Resync([]);
end;
end;

and code in old build (D7):
if Active then begin
if pos = nil then
FRecordPos := -1
else
FRecordPos := IntFindRecordID(pos);
if (FRecordPos = -1) then First;
if (RecordCount > 0) then FRecordPos := 0;
Resync([]);
end;

the old code sets FRecordPos to 0 if there are filtered records available
the new code does not cause it is dependent on the if (FRecordPos = -1) then begin

so is this a bug or?
i would expect that after filtered =true the first record that meets the filter is selected
so i can traverse the dataset without doing First myselves?

tia,
marc

this isn’t a bug.
if active record in grid is present after applying the filter, this record will be active again after filter otherwise the first record will be active.

that was indeed a side effect
but the change broke my code offcourse, and that was a bigger problem than a focus in a grid…
i didn’t read this change in release notes
so i guess i’ll have to investigate all filtered statements…