You need to cast the TObject to a TRecord with something like this:
FCurrentRecord := TRecord(FListOfRecords.Items[1]);
It's possible to go the other way around so you can do something like this:
var
X: TRecord;
Y: TObject;
begin
X := TRecord.Create;
Y := X;
end;
This is because the compiler knows that TRecord descends from TObject but in your code, the compiler has no way of knowing that The TObject in the list is actually a TRecord.
I would suggest using generics instead of a TObjectList. This will create a list of your type of object. You can use this as your TRecordList.
type
TRecordList = TObjectList<TRecord>;
When you create it you should use:
FManyRecords := TRecordList.Create;
To do this you will need to include System.Generics.Collections in your uses clause.