Yup, leave out the DataSet, just DbfContacts.First(), DbfContacts.Prior(), DbfContacts.Last(), etc.
Thanks, the Lazarus TDbf Tutorial is wrong in their examples, see below:
Moving Thru Table Records
(Jumping to Beginning of File, End of File, Next Record, Prior Record, etc.)
DbfContacts.FilePathFull := '/home/somelocation/database_location/'; // Path to
the database directory
DbfContacts.TableName := 'Contacts.dbf; // database file (including extension)
DbFContacts.Open;
DbfContacts.DataSet.First(); // -> Go to the first record
DbfContacts.DataSet.Prior(); // -> Go to the previous record
DbfContacts.DataSet.Next(); //-> Go to the next record
DbfContacts.DataSet.Last(); //-> Go to the last record
DbfContacts.DataSet.BOF; { Is the cursor at the beginning of the data
(on the first record) , returns boolean }
DbfContacts.DataSet.EOF; //-> Is the cursor at the end of the data
(on the last record)