Another approach (valid if you want to show the dialog if any of the settings is modified, then save all of them): a boolean global variable.
When any of the current values is changed you set the global var to True. On exit, if that var is True then you show the dialog and eventually save ALL the settings.
This will fail if the user changes an item from value A to value B and later again to value A because you monitor the "change event" but not the value itself.
@DonManfred approach will work in any condition since it "stores" the original value and uses it for comparision on exit, although it takes up some more RAM (this shouldn't be a problem since probably you won't have tens of controls anyway).