Главная страница
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
7-100482
Кирюшин Андрей
2003-02-06 21:00
2003.03.31
+ более общий вопрос


1-100247
skorpi
2003-03-18 17:34
2003.03.31
MDIChild DLL форма


7-100473
tulen
2003-02-02 14:44
2003.03.31
У кого нибудь есть таблица кодов клавишь?


1-100230
hawkins
2003-03-20 10:33
2003.03.31
Как сделать обработчик события OnMouseMove у компонента QuickRep?


3-100163
Keymaster
2003-03-13 00:31
2003.03.31
кодировка в interbase