| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Для новичков > Сохранение \ загрузка свойств класса из файла |
| Автор: shilnik 25.7.2008, 06:23 | ||||||
| Добрый день! Ситуация такая... Есть класс TTask (TComponent) его надо будет сохранять в файл и загружать из файла. У этого класа есть свойство Steps:TSteps; published; - Это коллекция, элементы которой класс TStep. Но в коллекции находятся объекты не самого TStep, а классы, унаследованные от TStep (со своими добавочными свойствами). Код выглядит примерно так:
Добавление объектов Step в коллекцию Steps происходит так:
Сохранение в файл и загрузка из файла:
А теперь внимание... ошибка При загрузке из файла выскакивает ошибка, что свойство PathFrom не существует. Почему это происходит я понимаю. Видимо по умолчанию создается объект класса TStep, а не TStepCopyFile. Но как быть? Как правильно написать такой класс, чтобы он корректно сохранялся\загружался? |
| Автор: Alexeis 25.7.2008, 09:20 |
| Насколько я помню, для сохранения свойств-объектов нужно зарегистрировать специальный объект сохранялку, который и будет сериализовать свойство-объект. Тут в 2х словах не расскажешь читайте книгу "Рэй Конопка - Создание оригинальных компонент в Delphi", ее можно найти тут http://www.delphilab.ru/content/blogsection/4/46/ |
| Автор: shilnik 25.7.2008, 11:07 |
| Alexeis, Если мы друг друга правильно поняли, то в моем случае объект-сохранялка - это объект класса TFileStream с методами ReadComponent и WriteComponent С простыми объектами это работает. Но в моем случае в объекте описано, что коллекция из объектов класса TStep, а на самом деле там потомки этого класса. Из за этого, видимо, и получается ошибка. ЗЫ: Книжку качаю, спасибо. |