Den gültigen RecordCount findest du im an den DataSource gebundenen Dataset. In deinem Fall wohl ein QuerySet.
Der Filter muss auch am Dataset aktualisiert werden.
Was machst du im DataSourceOnChange?
EDIT:
Delphi-Quellcode:
if Assigned(gData.DataSource) and Assigned(gData.DataSource.DataSet) then
begin
gData.Filter.Active := False;
gData.DataSource.DataSet.Filtered := False;
gData.BeginUpdate;
gData.DataSource.DataSet.Filter := '';
dmMain.MainGridFilter.Clear;
gData.EndUpdate;
gData.DataSource.DataSet.Filtered := True;
gData.Filter.Active := True;
if dmMain.cdsAddress.Active then
begin
StatusBar1.Panels[4].Text := 'Datensätze mit Filter: ' + IntToStr(dmMain.cdsAddress.RecordCount);
end;
end;
Als kleines Beispiel aus einem Projekt. Das klappt, zumindest bei mir.