Функция, возвращает количество вызовов себя за секунду, причем это значение обновляется раз в секунду:
var
pr_fps, frames, pr_upd:integer;
function fps: integer;
var
dt:integer;
begin
dt := GetRelativeTimeMs - pr_upd;//время с предыдущего обновления значения (pr_upd)
if dt<1000 then
frames:=frames+1//если прошло менее секунды - считаем кадры
else begin
pr_upd:=pr_upd+dt; //если больше - запоминаем текущее время
pr_fps:=frames; //возвращаем то что посчитали
frames:=0; //обнуляем счетчик кадров
end;
fps2:=pr_fps;
end;
Для удобства можно это вынести в модуль или либу.