Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.029 c
14-1085362573
Monster
2004-05-24 05:36
2004.06.13
Охринели


1-1085991622
Igor
2004-05-31 12:20
2004.06.13
DBRadioGroup


14-1085520043
CS_XatRiX
2004-05-26 01:20
2004.06.13
DElphi na4alnaja stadija!!!!!!!


3-1085107587
brr
2004-05-21 06:46
2004.06.13
Чем просмотреть файл *.gdb ????


14-1085510987
i-s-v
2004-05-25 22:49
2004.06.13
Торба.Ком перестанет существовать





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский