Pues acabo de hacer una prueba exactamente con tú código pero he descubierto que para tu propósito debe de utilizar el evento BeforeInsert:
Código Delphi
[-]
procedure TForm1.Query1BeforeInsert(DataSet: TDataSet);
begin
IF MESSAGEDLG ('¿Quiere cambiar los datos?',mtwarning,[mbYes,mbNo],0)=mrno then
abort;
end;
Un Saludo.