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

Вниз

Сохранение объектов.   Найти похожие ветки 

 
mc_duck   (2003-11-08 12:45) [0]

Добр день!
Кто-н. знает,как можно сохранить (и считать)объект в файле с помощью
TFileStream,так ,чтобы у объекта имелась возможность иметь
вложенные объекты?Желательно,чтобы это всё происходило без циклов
записи/считывания.
Спасибо.


 
OlegGashev   (2003-11-08 13:29) [1]

Наследуй его от TPersistent.


 
OlegGashev   (2003-11-08 13:29) [2]

Наследуй его от TPersistent.


 
Vuk   (2003-11-08 13:30) [3]

Можно. Особенно если использовать TCompenent. В VCL есть встроенная система сохранения объектов в потоке, основанная на RTTI. Эта система используется для хранения форм. Для сохранения компонента в потоке используется метод потока WriteComponent, для чтения - ReadComponen. Все классы, которые будут находиться в контейнере должны быть зарегистрированы при помощи RegisterClass.

Для того, чтобы в Ваших классах механизм работал нормально, нужно в классе компонента, который будет являться контейнером переопределить метод GetChildren.

procedure TObjectContainer.GetChildren(Proc: TGetChildProc;
Root: TComponent);
var
i : integer;
begin
inherited;
for i := 0 to ComponentCount - 1 do
Proc( Components[i]);
end;

В принципе, можно в качестве контейнера использовать TDataModule.



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

Форум: "Основная";
Текущий архив: 2003.11.20;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.011 c
3-65794
_VaaL_
2003-10-30 13:59
2003.11.20
. Кодировки для баз


3-65756
Yu
2003-10-31 14:40
2003.11.20
DBLookupComboBox


3-65741
s
2003-10-31 20:34
2003.11.20
Как можно выйти из редактирования записи не сменив записи?


3-65715
Kinder
2003-11-01 15:51
2003.11.20
БД без дополнительных компонентов


3-65718
lmatveev
2003-10-30 13:35
2003.11.20
Как узнать номер строки с ошибкой в MS SQL Server?





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