Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Delphi: Для новичков > проблемы с TPersistent |
Автор: artemiy 23.3.2007, 19:34 | ||
Прочитал статью http://forum.vingrad.ru/topic-94245/view-all.html и решил в стандартный пример добавить свой элементы и попытаться сохранить его. Первый запуск и сохранение произошло нормально. А вот уже на втором запуске вылетела ошибка ("access violation...", строка 6):
Где я не прав и что нужно исправить? Исходники в приложении. А то голова в конце недели слабо соображает )) |
Автор: Snowy 23.3.2007, 20:36 |
C контролами данный пример не работает - контролы требуют особого обращения. Заведи переменную, типа string и пусть она ссылается на Memo.Text. Тебе ж только текст сохранять нужно. |
Автор: artemiy 23.3.2007, 22:25 |
Ну в принципе да. Но это я взял только для примера, чтобы разобраться как все работает. А вообще мне нужно будет сохранять свои собственные типы. Надеюсь с этим проблем не будет? Ща попробую... |
Автор: artemiy 24.3.2007, 15:58 | ||
Попробовал сохранять собственные типы. Теперь все работает без ошибок, но, правда, и не сохраняет :( ![]() Может быть здесь что то не так?
|
Автор: Snowy 26.3.2007, 12:33 |
Сохраняются только published property. А твой MyType - это record. Естественно у него нет published пропертей. Вот и не сохраняется. |
Автор: artemiy 26.3.2007, 15:33 | ||
Понятно... А есть ли возможность как нибудь сохранить такой record (или еще лучше массив таких record-ов)? Или тут уже TPersistent не поможет? |
Автор: Snowy 26.3.2007, 15:52 |
Можно, но это нужно прописывать вручную. Лучше преврати свой record в наследника от TPersistent и проблема сама пропадёт ![]() |
Автор: artemiy 28.3.2007, 17:44 | ||
Вроде бы превратил... Но все равно не сохраняется массив из этих классов :( Может быть я что то неправильно делаю? (До этого с классами я вообще не работал, поэтому не совсем уверен в правильности моих действий)... |
Автор: Snowy 28.3.2007, 17:50 |
Массивы и списки нельзя разместить в published секции. Сохраняются исключительно только published свойства. Всё остальное в автомате сохраняться не будет - только ручками и это отдельная песня. |
Автор: artemiy 28.3.2007, 18:13 |
Какая жаль... Так хотелось этот TPersistent использовать для облегчения себе жизни... Ладно, будем искать другие методы ![]() Спасибо за помощь ;) |