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

Вниз

Есть ли TResourceFile в Delphi?   Найти похожие ветки 

 
VM   (2003-03-19 12:49) [0]

Не могу найти ответ на вопрос - можно ли (и как) в Delphi сохранять свои объекты в потоке данных так, как это делает TResourceFile в TP6 - т.е.именно как объекты. Явно (в D5) нет такого объекта, а ведь он очень удобен - создаешь свои объекты, регистрируешь их - и Put\Get в файл на диске, каждый объект индексируется ключевой строкой.
Спрашивал это же на сайтах "Delphi-UNDOCUMENTED","Delphi для всех" - тишина. Подскажите, кто знает.
И предлагаю тему - пусть откроет и выскажется кто-то из гуру - "Компромисс технологий ООП и БД", ведь мой вопрос идет отсюда - ты работаешь с БД, хранишь там описание (свойств) своих объектов как поля неких таблиц, но ведь функциональность туда не спрячешь; данные из таблиц БД в программе интерпретируются как объекты ООП, и иногда удобнее рабочие версии этих объектов сохранять не в таблицу БД, а именно как объект в файле ресурса.
Возможно, это узкая тема - в форумах я не видел по ней толком ничего,ни методологии, ни просто рекомендаций. Или это неинтересно?


 
REA ©   (2003-03-19 13:03) [1]

WriteComponentRes есть. Можно еще в текст перегнать и сохранить где угодно. Сохраняются только Published свойства.
Или тебе код тоже надо где-то держать? Тоже можно - BPL, COM, DCOM.


 
VM   (2003-03-19 13:50) [2]

Но WriteComponentRes - он потомков от TComponent сохраняет, а мои объекты от TObject. Ну а если в текст перегнать - так от ООП ни хрена не останется, за что боролись? Насчет BPL,Com и DCom - просто не понял, а это здесь при чем?
Я ведь хочу простого - создать свой объект от TObject, сохранить его в файле-потоке, а еще лучше - в файловом ресурсе под неким ключом. В TP6 такой стандартный объект есть, это TREsourceFile, у него помимо прочих есть методы Put и Get. В своем объекте я только определяю метод Store ждя сохранения свойств в потоке, и конструктор Load - для их считывания и воссоздания своего объекта.
В Delphi этого не вижу, поэтому вопрос - а как это сделать? И как мне сохранить потомка от TStringList, к примеру?



 
Digitman ©   (2003-03-19 14:08) [3]


> он потомков от TComponent сохраняет, а мои объекты от TObject


ну если уж ты сразу не сообразил наследовать свои классы от TComponent, то ничто не мешает "вручную перетащить" соотв.методы от TComponent в свой класс


 
Mike_Goblin ©   (2003-03-19 14:10) [4]

Сделай свои объекты наследниками TPersistent
переопредели
procedure DefineProperties(Filer: TFiler); virtual;

посмотри как используется Filer в коде WriteComponentRes - напиши свой код сохранения аналогично.

По поводу объектов в БД - Delphi7 Architect содержит отличный набор компонентов Bold. доп инфа - www.boldbox.com



 
REA ©   (2003-03-19 14:33) [5]

Всякие полезности типа потокового чтения/записи требуют накладных расходов, что не всем нужно, поэтому от TObject и нельзя сохранять, а от TPersistent можно. Так или иначе все движется к дотнет и далее к интерпретаторам - там все можно, главное чтобы станок апгрейдился раз в год.



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

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

Наверх




Память: 0.48 MB
Время: 0.009 c
7-100488
alex134
2003-02-03 20:18
2003.03.31
Серьезная штука с памятью


6-100366
Dimich1978
2003-02-07 15:01
2003.03.31
У Клиента в сокете остается инфа?


8-100339
drake
2002-12-22 23:58
2003.03.31
Надо ли???


6-100360
SeNtiMeL
2003-02-07 22:10
2003.03.31
Отправка файла через сокеты !


3-100143
pa\/el
2003-03-12 10:17
2003.03.31
Экзотическая БД