No he probado en eficiencia cual de estas 2 alternativas es mejor, pero ahí dejo las ideas:
1 - Haces el filtrado que sea, y después lanzas una consulta del tipo
Código SQL
[-]
select count(*)
from tabla
where <<<< misma restricción del filtro >>>>
2 - Haces un procedimiento almacenado que además de aplicar el filtro, devuelva un parámetro con el número de filas.
Siempre que hablo de "filtros" en Firebird, jamás me refiero a table1.Filter, sino que me refiero a la restricción where que ha de aplicarse a un Query, ya que en Firebird, al ser una base de datos sql, no tiene mucho sentido usar objetos TTable.
Saludos.