Форум: "Основная";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];
ВнизПомогите разобраться с сохранением и восстановлением компонента Найти похожие ветки
← →
Олег (2004-03-15 17:03) [0]Такой вопрос: Сохраняю объект MyObj классa TMyClass в файл
TMyClass = class(TComponent)
FDB: TIBDatabase;
FQuery: TIBQuery;
...
end;
Var
MyStream: TStream;
...
begin
MyStream := TFileStream.Create("C:\Temp\myfile.str", fmCreate);
MyStream.WriteComponent(MyObj);
...
При этом объкты FDB и FQuery в файл не сохраняются.
← →
Юрий Зотов © (2004-03-15 17:12) [1]1. Сохраняются СВОЙСТВА, а не поля, поэтому полям FDB и FQuery должны соответствовать свойства, причем строго published.
2. Уточните: FDB и FQuery - это ссылки на внешние компоненты, или это внутренние компоненты TMyClass (в первом случае достаточно сохранить только имена, во втором, возможно, придется замещать DefineProperties).
← →
Олег (2004-03-15 17:20) [2]В published они объявлены:
property DB: TIBDataBase read FDB stored True;
property Query: TIBQuery read FQuery write FQuery stored True;
Это внутренние компоненты, создаются в конструкторе при создании самого объекта.
← →
Юрий Зотов © (2004-03-15 17:36) [3]1. read поле write поле - гарантированно приведет к глюкам и утечке памяти.
2. Stored True - замените на stored False, а у TMyClass заместите DefineProperties и там определяйте сохранение обоих свойств. В процедурах Read/Write пишете все те же ReadComponent и WriteComponent. Примеры - в VCL.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.051 c