Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.04;
Скачать: CL | DM;

Вниз

Помогите разобраться с сохранением и восстановлением компонента   Найти похожие ветки 

 
Олег   (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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.021 c
14-1079009147
Andersen
2004-03-11 15:45
2004.04.04
Создай девушку/парня своей мечты


7-1074502383
Вован_
2004-01-19 11:53
2004.04.04
Как получить имя принтера, установленного в системе по умолчанию?


6-1075153241
Erazzer
2004-01-27 00:40
2004.04.04
Перехват вызова из локальной сети как в WinGate e.


1-1079209673
Tarquin
2004-03-13 23:27
2004.04.04
какая переменная нужна функции при создании следующей программы.


1-1079676460
jens
2004-03-19 09:07
2004.04.04
Из Экселя в СтрингГрид