Форум: "Основная";
Текущий архив: 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