Главная страница
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.025 c
2-1135845650
azl
2005-12-29 11:40
2006.01.22
Корректное завершение работы программы при выключении ПК


1-1134640866
Игорь Шевченко
2005-12-15 13:01
2006.01.22
Как правильно назвать методы ?


2-1136134118
XporlnD
2006-01-01 19:48
2006.01.22
Установка компонента


2-1135879817
ezorcist
2005-12-29 21:10
2006.01.22
Параметры ShellExecute


6-1128616981
Gall
2005-10-06 20:43
2006.01.22
WinSock2