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

Вниз

Сохранение формы в run-time   Найти похожие ветки 

 
СатирЪ ©   (2004-07-29 16:42) [0]

Подскажите, пожалуйста, каким методом можно сохранить форму в dfm-файл, на которую в рантайме были установленны компоненты?


 
Юрий Зотов ©   (2004-07-29 16:53) [1]

WriteComponentResFile


 
СатирЪ ©   (2004-07-29 17:05) [2]

Да, спасибо, уже нашёл.
Только оно сохраняется в бинарном виде.
А как сохранить в текстовом?


 
Юрий Зотов ©   (2004-07-29 17:25) [3]

TMemoryStream -> WriteBuffer -> ObjectBinaryToText -> TFileStream


 
СатирЪ ©   (2004-07-30 14:36) [4]

var Buffer,Count:integer;
   Input:TMemoryStream;
   Output:TFileStream;
begin
 Input:=TMemoryStream.Create;
 Input.WriteBuffer(Buffer,Count);
 Output:=TFileStream.Create("test.dfm",$FFFF);
 ObjectBinaryToText(Input, Output);
end;

Вопрос на засыпку: всё ли здесь верно и что долно представлять собой Buffer,Count?


 
Юрий Зотов ©   (2004-07-30 14:53) [5]

Примерно так:

procedure SaveFormToFile(Form: TForm; FileName: string);
var
 MS: TMemoryStream;
 FS: TFileStream;
begin
 MS := TMemoryStream.Create;
 try
   MS.WriteBuffer(Form, Form.InstanceSize);
   MS.Position := 0;
   FS := TFileStream.Create(FileName, ...);
   try
     ObjectBinaryToText(MS, FS)
   finally
     FS.Free
   end
 finally
   MS.Free
 end
end;


 
СатирЪ ©   (2004-07-30 15:23) [6]

Благодарю.



Страницы: 1 вся ветка

Текущий архив: 2004.08.15;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.046 c
11-1078653027
Nils
2004-03-07 12:50
2004.08.15
Incopatible types: TKOLStGrd and PStGrd - что делать???


6-1087299366
Razor
2004-06-15 15:36
2004.08.15
Атрибуты файла по HTTP (IdHTTP)


6-1087188282
P@vel
2004-06-14 08:44
2004.08.15
Socket


14-1091107443
rea
2004-07-29 17:24
2004.08.15
Trial


3-1090149029
buka
2004-07-18 15:10
2004.08.15
Как заставить включиться в работу клавишу abcDB SuperNav