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




Вниз

Поддержка сериализации в Delphi. 


BlackJack   (2002-04-13 01:11) [0]

Есть ли поддержка сериализации в Delphi?Имеется объект с некоторыми свойствами, надо сделать так, чтобы после выхода из программы и затем ее загрузки все свойства объекта приняли выбранные до этого пользователем значения.
Конечно можно использовать ini файлы, но по мне это - каменный век. Меня интересует:
1) есть ли поддержка сериализации, если да как ее сделать,
2) как писать параметры таких объектов через реестр windows.



SPeller   (2002-04-13 02:14) [1]

1) Можно хранить настройки в бинарных файлах.
2) Используй класс TRegistry. В нём всё интуитивно понятно.



Fantasist   (2002-04-13 21:35) [2]

Поддержки сериализации в Делфи нет - надо писать свою. Я бы делал это через BlockWrite/BlockRead.



Вася Пупкин   (2002-04-14 06:16) [3]

Нечто подобное все-же есть - классы TWriter и TReader.

Неплохо описано в М.Канту,Т.Гуч,Дж.Лэм "Дельфи. Руководство разработчика", гл.3 - больше подобного описания, к сожалению, нигде не встречалось.

Примеры к книге (код) можно скачать:
ftp://ftp.sybex.com/1987/Ch03.exe (1.5 М)
Примеры: Persist - запись и чтение простого объекта пользователя
StrComp - чтение и запись файлов форм



Armen   (2002-04-15 14:06) [4]

TStream.WriteComponent(Instance: TComponent);
TStream.WriteComponentRes(const ResName: string; Instance:TComponent);



Armen   (2002-04-15 14:16) [5]

Mojno eshe Ispol"zovat" TReader, TWriter

var
Stream: TStream;
Writer: TWriter;
MyComponent: TComponent;
begin
MyComponent:= TComponent.Create(Application);
Stream:= TMemoryStream.Create;
try
Writer:= TWriter.Create(Stream, Sizeof(MyComponent));
Writer.WriteRootComponent(MyComponent);
....
....
finally
Writer.Free;
Stream.Free;
end;
end;




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




Наверх





Память: 0.72 MB
Время: 0.016 c
7-94604           SV                    2002-01-31 13:18  2002.04.29  
Shell


1-94506           LazorenkoX            2002-04-16 09:26  2002.04.29  
record; packed record


4-94642           Tosov                 2002-02-27 02:08  2002.04.29  
Запись 64битного числа в реестр


3-94299           Viktor1               2002-04-07 00:28  2002.04.29  
Как сделать вх. номер?


1-94421           Explorer              2002-04-18 09:37  2002.04.29  
Интервал в QRMemo