Создание класса документа
Основной функцией класса документа является обеспечение обратных вызовов для изменений в отображаемом элементе нужных данных, обработки действий пользователей через соответствующие отображаемые элементы и сообщения отображаемым элементам об изменении
соответствующих данных.
TDocument - это абстрактный базовый класс, обеспечивающий
данные функциональные возможности. Непосредственно создать его
экземпляр нельзя, поэтому необходимы производные классы. При
построении производного класса вызывается конструктор TDocument.
Этот конструктор воспринимает только один параметр TDocument*,
который указывает на родительский документ нового документа или
равен 0 (по умолчанию).
Обычно следует избегать переопределения функций TDocument,
так как они не описаны как virtual. Администратор документа обращается ко всем производным объектам TDocument как к фактическим
объектам TDocument. Если вы переопределяете невиртуальную функцию, она не вызывается, когда к ней обращается администратор документа. Вместо этого администратор документа вызывает версию
TDocument этой функции. Однако при переопределении виртуальной
функции TDocument (~TDocument, InStream, OutStream, Open, Close,
Commit, Revert, RootDocument, SetDocPath, SetDocPath, SetTitle,
GetProperty, IsDirty, IsOpen, CanClose, AttachStream и DetachStream) администратор документа корректно вызывает вашу функцию.
Если функция базового класса выполняет какие-то важные действия,
то ее следует вызывать внутри определяемой вами функции.