Главная страница
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.014 c
1-100320
{bas}
2003-03-17 11:01
2003.03.31
Выделение памяти


1-100325
TY
2003-03-19 08:16
2003.03.31
Постоянная проверка изменение даты .


3-100175
kalliopiy
2003-03-11 14:34
2003.03.31
TRxDBGrid


14-100457
{bas}
2003-03-14 18:33
2003.03.31
опять Память


6-100350
nvv_fr
2003-02-05 15:25
2003.03.31
А можно с mailslot через Winsock работать?