AddForm - проблемы

Andrew KruchininAndrew Kruchinin Волгоград
отредактировано 08:55 Раздел: FastScript
Возникла проблема при вставке формы в скрипт. Смысл такой - форма хранится в XML формате в БД, оттуда загружается по команде uses. Т.е. если указать в uses-е имя существующей записи в списке форм, то форма будет создана и с ней можно будет работать. Создание и загрузка формы примерно в следующем виде идет в обработке OnGetUnit:
  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, может там поправлено?

Комментарии

  • Andrew KruchininAndrew Kruchinin Волгоград
    отредактировано 08:55
    По истечении года решил проверить - а не было ли ответа на мой вопрос годовалой давности... Или все поправилось само собой? :)
  • отредактировано 08:55
    Andrew Kruchinin написал: »
    По истечении года решил проверить - а не было ли ответа на мой вопрос годовалой давности... Или все поправилось само собой? :)

    В последних версиях скрипта (доступен отдельно или в составе FR4) AddForm делать не нужно. Достаточно добавить объект самой формы: fsScript1.AddObject(form.Name, form), и к ее объектам можно обращаться как form.Label1.Caption := '...';
  • Andrew KruchininAndrew Kruchinin Волгоград
    отредактировано 08:55
    AlexTZ написал: »
    В последних версиях скрипта (доступен отдельно или в составе FR4) AddForm делать не нужно. Достаточно добавить объект самой формы: fsScript1.AddObject(form.Name, form), и к ее объектам можно обращаться как form.Label1.Caption := '...';

    Ага, спасибо, будем пробовать.

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.