Форум: "Компоненты";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];
ВнизСохранение свойства-обьект Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.038 c