Но вот на конкретно задачи не пойму, можно как то сделать отладку для случая, когда есть ITEM которуму одно из свойст меняют, но перед заменой он в памяти копируется для осуществления функции отмены действий. Как результат SetValue прежде чем закончить свою работу вызывается еще десяток раз для копируемого объекта.
Есть функция в IDE чтобы остаться на том же уровне выполнения программы и перемахнуть через повторный вызов SetValue, которые порождается BeforeValueChange
 
 Или много хочу?
- Код: Выделить всё
- function TPropertyList.SetValue(AName: ShortString; AValue: Variant
 ): TPropertyItem;
 begin
 BeforeValueChange; //Перед тем как делать замену значения полностью копируем объект у которого очень много свойств.
 ..
 DoSetValue(...)//А теперь выставляем значение



