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