Единственным местом, где у тебя фигурирует Real - выход функции ReadReal. Значит, функция ToInteger хочет на вход TData. Проверим себя: найдём описание функции ToInteger - оно в файле Functions.pas:
function ToInteger(const Data:PData):integer;
На вопрос "а как правильно" - ответь сам, ответов минимум два.