![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сохранение свойства-обьект
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) на подчиненные компоненты, которых понятное дело может быть сколько угодно. Весьма нормальная и обьяснимая ситуация а решения найти не могу, уже полностью реречитал все разделы про создание компонентов в нескольких книгах... Что делать?