Locate function locates on wrong record first time


I have a quite annoying problem:

When refreshing all my tables and queries I close them and open them again.
Before I store the location (pimary index) in an integer variable locally in
the delphi app. After opening the datasets again and calling the Locate
function, this results in that I am located on the record after the
requested one. If I call locate again, I am located on the record that I

Does anyone know why this behaviour occur?

The workaround is that I call Locate twice, and that does not feel