Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сохранение свойства-обьект


Juice ©   (2005-08-03 21:25:00) 

В моем компоненте необходимо иметь св-во представляющее собой список обьектов. Я использую TObjectList. Однако сохранив/закрыв/открыв форму можно увидеть что мое это св-во не сохраняется, и это логично - TObjectList не наследник TPersistent. Не подскажите ли как выйти из этой ситуации, может есть какие-то списки для этих целей ?


Digitman   (2005-08-04 15:42:00) [1]


> Juice


объект должен "уметь" сохранять/восстанавливать себя (т.е. свои свойства) в/из TPF-потока.

по Борланд-дифолту за published-св-ва отвечает среда (и ран-тайм-двигатель), за любые прочие - ты сам .. см. TFiler.DefineProperty/Properties, GetChildren e.t.c


Juice   (2005-08-04 15:13:00) [2]

Это был глюк. Закрыл/открыл Delphi и коллекция сохраняется.


Juice   (2005-08-04 14:20:00) [3]

Сделал все как вы сказали, однако список по-прежнему не сохраняется! Описал классы так : http://www.delphimaster.ru/cgi-bin/forum.pl?id=1123149054&n=12
Точнее ситуация следующая: В design-time добавляю в коллекцию элементы. Смотрю в dfm - они есть. Закрываю проект.  Смотрю в dfm - они есть. Откріваю проект и тут вообще ерунда - в dfm они есть, в ObjectInspector'e коллекция пустая, и если нажать Alt+F12 на форме то тоже видно что коллекция пустая. ?????


Джо   (2005-08-04 14:07:00) [4]


>  [4] Juice ©   (04.08.05 11:38)

Адреса тебе будут нужны при сохранении всего дела в DFM. В него ты сохраняешь все свойства этих объектов, которые считаешь нужными. А при чтении ты будешь создавать объекты заново, а свойства для них будешь читать уже сохраненные.


Juice   (2005-08-04 11:38:00) [5]


> Есть подчиненные компоненты и центральный. Так вот центральному
> нужно хранить ссылки (linkage) на подчиненные компоненты,
> которых понятное дело может быть сколько угодно.

Правильно ли я понимаю, что 'центральному' хранить в этом случае нужно не ссылки а имена компонентов, ведь допустим если ссылки будут сохранены в файле формы, ее закроют, а в следующий после  открытия формы они уже будут указывать на левые адреса в памяти ?


Juice   (2005-08-04 09:50:00) [6]


> какой смысл делать published-свойство типа TObjectList?
> В дизайнере для них нет редактора.

Редактор я свой уже написал. Спасибо, попробую через TCollection.


Джо   (2005-08-04 01:00:00) [7]

Используй TCollection. Они для этого и предназначены. Кроме того, какой смысл делать published-свойство типа TObjectList? В дизайнере для них нет редактора.
Но если очень уж хочется писать в dfm произвольные свойства компонента, тогда посмотри логику работы виртуального метода DefinePropertiesи регистрации в нем своих методов чтения/записи посредством вызова Filer.DefineBinaryProperty/Filer.DefineProperty.


Juice   (2005-08-03 22:25:00) [8]

Вот еще аналогичная проблема: Есть подчиненные компоненты и центральный. Так вот центральному нужно хранить ссылки (linkage) на подчиненные компоненты, которых понятное дело может быть сколько угодно. Весьма нормальная и обьяснимая ситуация а решения найти не могу, уже полностью реречитал все разделы про создание компонентов в нескольких книгах... Что делать?


Наверх

Титульная страница Поиск, карта сайта Написать письмо