Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Компоненты";
Текущий архив: 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.047 c
2-1136287686
Officeman
2006-01-03 14:28
2006.01.22
Как програмно закрасить кнопку (TButton) красным ?


2-1135951119
Id
2005-12-30 16:58
2006.01.22
Данные не сохраняются


2-1136622434
Нютик
2006-01-07 11:27
2006.01.22
Rave Report. Master/Detail Wizard не хочет запускаться :(


2-1136464825
ArtemESC
2006-01-05 15:40
2006.01.22
Процесс...


2-1135866498
rruussllaann
2005-12-29 17:28
2006.01.22
проблема динамического создания компонента





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский