Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.06.2008, 17:38   #1
kayman
Пользователь
 
Регистрация: 10.09.2007
Сообщений: 29
По умолчанию Ошибка, связанная с загрузкой из файла!

Помогите, пожалуйста исправить ошибку в программе. Суть программы и ошибка описаны в прикрепленном текстовом файле, там же и часть программы. Заранее благодарен за понимание.
Вложения
Тип файла: rar Прога.rar (207.1 Кб, 14 просмотров)
kayman вне форума Ответить с цитированием
Старый 01.06.2008, 18:10   #2
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

я вообще не онял что делает эта программа....
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 01.06.2008, 18:14   #3
kayman
Пользователь
 
Регистрация: 10.09.2007
Сообщений: 29
По умолчанию

Цитата:
я вообще не онял что делает эта программа....
это маленькая часть программы, для добавления элементов в дерево.
kayman вне форума Ответить с цитированием
Старый 01.06.2008, 20:13   #4
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Проблема связана с владением компонентами. Вам придется пересмотреть структуру объектов для правильного сохранения. TUchItems должен быть владельцев всех компонентов, которые сохраняются.

Подробно это рассмотрено в статье RSDN "Сериализация объектов стандартными средствами Delphi":

Цитата:
...Есть одна тонкость, которую надо учитывать, используя этот сериализуемый тип. Корректное восстановление ссылок на основании имён произойдёт лишь если корневой объект является общим владельцем для компонентов, которые содержат ссылки, и компонентов, на которые они ссылаются. Именно из-за этого выше упоминалось о том, что на практике используется лишь самый простой вариант иерархии владения: корневой компонент владеет всем, что входит в сериализацию, остальные компоненты не владеют ничем. Механизм десериализации устроен таким образом, что вне зависимости от того, как было раньше, после загрузки из потока корневой компонент окажется владельцем всех других компонентов.
...
Именно это у Вас и происходит. Вместо дерева получается простой список.

Последний раз редактировалось alexBlack; 01.06.2008 в 20:16.
alexBlack вне форума Ответить с цитированием
Старый 01.06.2008, 20:25   #5
kayman
Пользователь
 
Регистрация: 10.09.2007
Сообщений: 29
По умолчанию

alexBlack премного благодарен, что просмотрели мою проблему.

А как это реализовать?
kayman вне форума Ответить с цитированием
Старый 01.06.2008, 21:23   #6
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Цитата:
Сообщение от kayman Посмотреть сообщение
А как это реализовать?
Сам не пользовался этим механизмом для сохранения данных.
Если непременно нужен этот метод, то Вам придется разбираться с его работой. Если нет, то есть и другие способы сохранения дерева в файл.

Пример записи/чтения дерева во вложении
Вложения
Тип файла: rar test.rar (7.7 Кб, 10 просмотров)

Последний раз редактировалось alexBlack; 01.06.2008 в 23:30.
alexBlack вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++: ошибка при открытии файла Retiz Помощь студентам 2 30.08.2008 22:12
вывод слова из файла, ошибка Ceprey Общие вопросы C/C++ 4 17.04.2008 12:05
ошибка при открытии файла pas Var17 Общие вопросы Delphi 2 23.01.2008 15:30
Ошибка при загрузке файла html Ign Microsoft Office Excel 1 11.11.2007 13:55