Объекты в fsScript

отредактировано 03:59 Раздел: FastScript
Здравствуйте, у меня возникла проблема, помогите мне ее решить.
Описание:
Допустим имеются 2 формы
aForm, bForm: TForm;
В один прекрасный момент происходит примерно следующее
....
bForm:= TForm.Create(Self);
bform.Name:= 'bForm';
aForm:= TForm.Create(Self);
aform.Name:= 'aForm';
with TLabel.Create(aForm) do begin
Name:= 'aLabel';
Parent:= aForm;
Top:= 20;
Left:= 20;
Visible:= true;
end;
with TLabel.Create(bForm) do begin
Name:= 'aLabel';
Parent:= bForm;
Top:= 20;
Left:= 20;
Visible:= true;
end;
Далее эти формы формы регистрируются в скрипте
...
fsScript1.AddForm(aForm);
fsScript1.AddForm(bForm);
Допустим пишем скрипт
....
aForm.aLabel.Caption:= 'Hallo 1';
aForm.Show;
bForm.aLabel.Caption:= 'Hallo 2';
bForm.Show;
В результате получаем 'Hello 2' на метке формы aForm.
Посмотрел как работает AddForm - она действительно строит объект, который содержит все собственные объекты, но ошибка на лицо.
;)

Комментарии

  • отредактировано 03:59
    AddForm для правильной работы нужны разные базовые классы, например TForm1 и TForm2. Т.к. в данном случае оба экземпляра - одного типа TForm, происходит путаница.
  • отредактировано March 2005
    Большое спасибо, я это и предполагал, а подобная ситуация никак не решается?
  • отредактировано 03:59
    может так:
    type 
      TbForm = class(TForm)
       end;
    
    var
      aForm: TForm;
      bForm: TbForm;
    
  • отредактировано 03:59
    Так не пойдет - Делфи будет жаловаться на отсутствие файла формы (dfm).

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

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