Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.22;
Скачать: CL | DM;

Вниз

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

 
Juice ©   (2005-08-03 21:25) [0]

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


 
Juice ©   (2005-08-03 22:25) [1]

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


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

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


 
Juice ©   (2005-08-04 09:50) [3]


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

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


 
Juice ©   (2005-08-04 11:38) [4]


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

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


 
Джо ©   (2005-08-04 14:07) [5]


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

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


 
Juice ©   (2005-08-04 14:20) [6]

Сделал все как вы сказали, однако список по-прежнему не сохраняется! Описал классы так : http://delphimaster.net/view/5-1123149054/
Точнее ситуация следующая: В design-time добавляю в коллекцию элементы. Смотрю в dfm - они есть. Закрываю проект.  Смотрю в dfm - они есть. Откріваю проект и тут вообще ерунда - в dfm они есть, в ObjectInspector"e коллекция пустая, и если нажать Alt+F12 на форме то тоже видно что коллекция пустая. ?????


 
Juice ©   (2005-08-04 15:13) [7]

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


 
Digitman ©   (2005-08-04 15:42) [8]


> Juice


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

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



Страницы: 1 вся ветка

Текущий архив: 2006.01.22;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.029 c
14-1135887655
Джо
2005-12-29 23:20
2006.01.22
Прокси-сервера


2-1136450117
Zhekson
2006-01-05 11:35
2006.01.22
Как получить список отфильтрованных полей???


6-1128457045
Out
2005-10-05 00:17
2006.01.22
определение ip адреса


14-1135688727
Ale_x_ey
2005-12-27 16:05
2006.01.22
Виртуальная машина


5-1122534983
Fedja2003
2005-07-28 11:16
2006.01.22
Редактор компонентов