Si usa el ListView sólo para mostrar los datos, debería bastar el ZQuery.RecNo. Pero si pueden quitarse filas del listview (suponiendo que tiene un mecanismo que avise al dataset de ello) y no quiere releer el dataset, lo que puede hacer es usar el evento OnCustomDrawItem para actualizar el item con su índice:
Código Delphi
[-]
procedure TForm1.Button1Click(Sender: TObject);
var
Item: TListItem;
begin
Item := ListView1.Selected;
if Assigned(Item) then
ListView1.Items.Delete(Item.Index);
end;
Con esto puede insertar o borrar elementos y siempre aparecerá el correlativo correcto.
LineComment Saludos