Я хотел бы сделать запись как свойство объекта. Проблема в том, что когда я меняю одно из полей этой записи, объект не знает об этом изменении.
type
TMyRecord = record
SomeField: Integer;
end;
TMyObject = class(TObject)
private
FSomeRecord: TMyRecord;
procedure SetSomeRecord(const Value: TMyRecord);
public
property SomeRecord: TMyRecord read FSomeRecord write SetSomeRecord;
end;
И тогда, если я это сделаю...
MyObject.SomeRecord.SomeField:= 5;
... не будет работать.
Итак, как мне сделать процедуру установки свойств "catch", когда записывается одно из полей записи? Возможно, какой-то трюк в том, как объявить запись?
Дополнительная информация
Моя цель - не создавать TObject
или TPersistent
с событием OnChange
(например, TFont
или TStringList
). Я более чем знаком с использованием объектов для этого, но, пытаясь немного очистить свой код, я вижу, могу ли я использовать запись вместо этого. Мне просто нужно убедиться, что мой установщик свойств записи можно вызвать правильно, когда я установил одно из полей записи.