Текущий архив: 2004.06.13;
Скачать: CL | DM;
ВнизСохранение формы в файл и чтение из файла Найти похожие ветки
← →
DmitryNekl (2004-05-31 10:02) [0]Ситуация такая.
Динамически создаю форму (Form4 - пустая форма), на нее динамически вешаю контролы, сохраняю ее в файл и затем - убиваю:procedure TForm1.Button2Click(Sender: TObject);
procedure CreateDBEdit(T: TField; EditForm: TForm; var Top: integer);
var
DBEdit: TDBEdit;
Label1: TLabel;
begin
Label1:=TLabel.Create(EditForm);
Label1.Caption:=T.DisplayLabel;
Label1.Left:=10;
Label1.Top:=Top;
Top:=Top+2+Label1.Height;
Label1.Parent:=EditForm;
Label1.Name:="Label"+IntToStr(Top);
DBEdit:=TDBEdit.Create(EditForm);
DBEdit.Top:=Top;
DBEdit.Left:=10;
DBEdit.Name:="DBEdit"+IntToStr(Top);
DBEdit.DataSource:=DataSource1;
DBEdit.DataField:=T.Name;
DBEdit.Parent:=EditForm;
Top:=Top+5+DBEdit.Height;
end;
var
EditForm: TForm4;
i, Top: integer;
ListBox1: TListBox;
begin
EditForm:=TForm4.Create(nil);
EditForm.Name:="Form4";
EditForm.Show;
ListBox1:=TListBox.Create(EditForm);
ListBox1.Name:="ListBox1";
ListBox1.Align:=alRight;
ListBox1.Parent:=EditForm;
Top:=10;
for i:=0 to Form1.ComponentCount-1 do
if (Form1.Components[i] is TField) then
begin
if (Form1.Components[i] is TStringField) then
begin
CreateDBEdit(Form1.Components[i] as TField, EditForm, Top);
ListBox1.Items.Add((Form1.Components[i] as TStringField).Name);
end;
end;
WriteComponentResFile("FormFileName", Self);
EditForm.Free;
end;
Потом пытаюсь прочитать форму из файла:procedure TForm1.Button5Click(Sender: TObject);
var f: TForm;
begin
F:=TForm4.Create(nil);
F.Show;
end;constructor TForm4.Create(AOwner: TComponent); // override;
var
fname: String;
begin
{ Для динамически создаваемых контролов, может требоваться
RegisterClasses(..); }
fname:="FormFileName";
if FileExists(fname) then
begin
CreateNew(AOwner);
ReadComponentResFile(fname, Self);
end
else
inherited Create(AOwner);
end;
и получаю ошибку:
Invalid Property Value (без подробностей, что за св-во и т.д.) Где я не прав и что делать?
← →
TUser (2004-05-31 10:25) [1]Используй TJvFormStorage
← →
изм (2004-05-31 10:26) [2]Поищи есть статья на этом сайте
чтение формы из базы
← →
DmitryNekl (2004-05-31 10:38) [3]Статью посмотрел... не очень понял :(.
Код, который привел я, не полностью мой - конструктор переписан с http://faqs.org.ru/progr/pascal/delphi_faq4.htm
Я так понимаю, что проблема не в коде, а в его применении к моей конкретной ситуации... и я хотел бы не столько узнать о возможных решениях, сколько о своих ошибках :)
← →
DmitryNekl (2004-05-31 16:33) [4]Все, нашел. Ошибка глупая и по невнимательности.
Страницы: 1 вся ветка
Текущий архив: 2004.06.13;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.027 c