Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.03.31;
Скачать: [xml.tar.bz2];

Вниз

Есть ли 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.007 c
1-100200
yUrrius
2003-03-11 10:03
2003.03.31
Програмное закрытие модальной формы


14-100432
vopros
2003-03-14 10:39
2003.03.31
Давайте мне поможем с DbgridEh из Ehlib


3-100183
gmkushkunov
2003-03-11 21:40
2003.03.31
Delphi 7 и SQL Server 2000


1-100245
Johnmen
2003-03-18 12:38
2003.03.31
AVI in .EXE


6-100351
Cosmic
2003-02-05 20:11
2003.03.31
Mailslot???





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