Главная страница
    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.048 c
14-1135949217
ANB
2005-12-30 16:26
2006.01.22
Какое расстояние от Туркмении до Украины по суше ?


2-1136405133
lex85
2006-01-04 23:05
2006.01.22
закладки


6-1128932588
SANEK_10289
2005-10-10 12:23
2006.01.22
Как поменять кодировку при отправке письма из Delphi


14-1135538589
Ihor Osov'yak
2005-12-25 22:23
2006.01.22
Есть пробел в знаниях.


2-1136187898
Khim
2006-01-02 10:44
2006.01.22
Как можно вставить свою иконку в MessageBox, подробнее





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский