![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сохранение TControl
vvolkov © (2002-10-31 13:51:00)Кто знает как сохранить у своего TComponent не published свойство в таком формате как в dfm. Пробовал как в примере Delhpi не работает... помогите кто может!
vvolkov (2002-10-31 14:42:00) [1]Основная проблема в том, что при записи свойства Control не формируется вложенный компонент, а формируется запись его свойств. При преобразовании их в читаемую форму преобразователь естественно спотыкается поскольку не может интерпретировать такое свойство. Как выполнить формирование вложенного объекта?
vvolkov (2002-10-31 14:12:00) [2]переопределял DefineProperty и типа
procedure TPlacementItem.DefineProperties(Filer: TFiler);
begin
Filer.DefineProperty"Control", ReadControl,WriteControl,true);
end;
и заводил функции
procedure TPlacementItem.ReadControl(Reader: TReader);
begin
Control:=TControl(Reader.ReadComponent(nil));
end;
procedure TPlacementItem.WriteControl(Writer: TWriter);
begin
Writer.WriteComponent(Control);
end
Сохранение выполял руками типа
function TPlacementItem.Save: string;
begin
var
BinStream :TMemoryStream;
StrStream : TStringStream;
begin
BinStream:=TMemoryStream.Create;
try
StrStream:=TStringStream.Create("");
BinStream.WriteComponent(Self);
BinStream.Seek(0,soFromBeginning);
ObjectBinaryToText(BinStream,StrStream); // вот тут оно и здыхало...
result:=StrStream.DataString;
finally
StrStream.Free;
BinStream.Free;
end;
end;
Примерно так...
Skier (2002-10-31 13:53:00) [3]>vvolkov
Как пробовал ?