Ответ 1
Во-первых, для тех, кто не знает, как наследовать форму визуально, вы создаете форму предка как обычно. Затем перейдите в меню "Файл" > "Создать" > "Другое". Выберите вкладку с именем текущего проекта и выберите форму, на которую вы хотите наследовать. Если вы хотите наследовать от формы, которая не является частью текущего проекта, откройте эту форму, щелкните ее правой кнопкой мыши и выберите "Добавить в репозиторий". Затем вы сможете перейти в "Файл" > "Создать" > "Другое" и выбрать эту форму на соответствующей вкладке.
Учитывая это, я столкнулся с проблемами, потому что некоторые из форм потомков уже были созданы, поэтому я не мог выполнить описанный выше процесс. Кроме того, я внес некоторые изменения в формы из стандартного кода, созданного Delphi. Я смог разрешить все проблемы с наследованием визуальной формы, используя следующие рекомендации:
- ..pas файл формы потомка должен наследовать класс формы из правильного класса предка, например:
type TMyForm = class(TAncestorForm)
- Первая строка в .dfm формы потомка должна иметь слово
inherited
вместоobject
, например:inherited MyForm: TMyForm
- EDIT: после двойной проверки, НЕ требуется:..pas файл формы предка должен иметь стандартную глобальную переменную, которую создает Delphi, например:
var AncestorForm: TAncestorForm;
- Раздел
uses
файла .dpr проекта должен иметь такую же глобальную переменную, что и комментарий после имени файла устройства, например:unAncestor in 'unAncestor.pas' {AncestorForm}
Примечание/Советы:
- И форма предка, и форма потомка могут быть неавтоматически созданы, если хотите (Set in Project > Options > Forms > Auto-create forms).
- Чтобы вернуть свойство в форме потомка к значению формы предка, щелкните правой кнопкой мыши на свойстве в инспекторе объектов и выберите "Вернуть в унаследованное".
- Чтобы вернуть все значения свойств компонента в значения предка, щелкните правой кнопкой мыши компонент и выберите "Вернуть в унаследованное".