Главная страница
    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.01 c
14-66099
Sergik!
2003-10-29 10:08
2003.11.20
Будильник


1-65864
Chlavik
2003-11-07 19:25
2003.11.20
TStatusBar и OwnerDraw какойто страшный глюк :)


14-66084
Igit
2003-10-23 21:13
2003.11.20
DirectX. Графика в проектах Delphi. Краснов М.


3-65757
IBNovice
2003-10-30 14:10
2003.11.20
violation FOREIGN KEY


1-66010
genek84
2003-11-10 10:02
2003.11.20
Помогите найти компонент





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