Выводите внутривеб-формы из родительской, а не из TIWAppForm напрямую - ошибка в IDE
-
19-09-2019 - |
Вопрос
У меня есть формы в моем приложении, которые я получаю от общего предка, например:
TAtFormBaseIW = класс ( TIWAppForm ) и TAtFormExplorerIW = класс ( TAtFormBaseIW )
Это работает для определенных форм, но не для других.
Позвольте мне высказать смелое предположение:кажется, это работает для всех форм, созданных в Delphi до IW 10, но не для форм, которые я создал с помощью IW 10.Что происходит с новыми формами:Всякий раз, когда я хочу загрузить их в IDE, они интерпретируются как формы win32, некоторые свойства игнорируются (все типичные свойства win32, такие как clientWidth), и мне говорят, что я не могу поместить компоненты IW в эти формы.
Создание их прямыми потомками TIWAppForm, сохранение их и использование обычного текстового редактора для их изменения обратно работает.После перекомпиляции они нормально отображаются в браузере, но никогда в IDE.
Есть какие-нибудь идеи о том, что происходит?
Решение
Mea culpa, mea maxima culpa.Эта проблема не имеет ничего общего с IntraWeb, а с тем, как производная форма должна быть добавлена в проект.
Вместо того, чтобы просто менять TIWAppForm на TAtFormBaseIW, после добавления новой формы в проект, я должен сделать это:
Выберите в IDE
Файл / Новые / Другие / Наследуемые элементы
а затем базовая форма, из которой вы хотите вывести свою форму.
Если вы хотите превратить существующую форму в производную, также измените ведущее ключевое слово объект в файле dfm для унаследованный.
Вы можете прочитать об этом здесь.