AddForm - проблемы
Andrew Kruchinin
Волгоград
Возникла проблема при вставке формы в скрипт. Смысл такой - форма хранится в XML формате в БД, оттуда загружается по команде uses. Т.е. если указать в uses-е имя существующей записи в списке форм, то форма будет создана и с ней можно будет работать. Создание и загрузка формы примерно в следующем виде идет в обработке OnGetUnit:
Теперь код из скрипта:
Что я делаю не так? Или это проблема в самом движке?
Движок 3.22. Счас качаю 3.24, может там поправлено?
SQLWork.Fields[2].SaveToStream(MemStm); //Загрузка XML формата формы в поток
NewForm:=TForm.Create(Application);
NewForm.Name:=UnitName;
NewForm.Position:=poScreenCenter;
NewForm.Caption:=UnitName;
NewForm.BorderStyle:=bsDialog;
XML2Form(MemStm, NewForm); //Функция загрузки формы из формата XML
Sender.AddForm(NewForm);
//Эта часть кода для демонстрации аналога. Регистрируется объект с именем
//ИмяФормы_ИмяОбъектаНаФорме
for i:=0 to NewForm.ComponentCount-1 do
Sender.AddObject(UnitName + '_' + NewForm.Components[i].Name,
NewForm.Components[i]);
Теперь код из скрипта:
TestForm.Caption:='Test';
TestForm.ShowModal;
ShowMessage(TestForm.Edit1.Text); //Ошибка
ShowMessage(TestForm_Edit1.Text); // Работает нормально
Что я делаю не так? Или это проблема в самом движке?
Движок 3.22. Счас качаю 3.24, может там поправлено?
Комментарии
В последних версиях скрипта (доступен отдельно или в составе FR4) AddForm делать не нужно. Достаточно добавить объект самой формы: fsScript1.AddObject(form.Name, form), и к ее объектам можно обращаться как form.Label1.Caption := '...';
Ага, спасибо, будем пробовать.