con el next y el prior te puedes mover por el dataset en este caso tu query.
Código Delphi
[-]
q1.open;
q1.first;
while not(q1.eof) and (q1.fieldbyname('posicion').value <> 1) do
begin
q1.next;
end;
Con esto te lo localiza pero sigues viendo los ceros, luego puedes ajustar haciendo más
next para que desaparezcan (tb es un poco cutre
)