Показать сообщение отдельно
  #1  
Старый 25.05.2023, 22:12
Аватар для Uniq!
Uniq! Uniq! вне форума
Местный
 
Регистрация: 29.09.2010
Сообщения: 539
Версия Delphi: Delphi XE3
Репутация: 374
По умолчанию Два фрейма собранных в Designtime и две функции

Здравствуйте.

Стандартная (в каком-то смысле) задача: выбирая очередную запись из combobox меняется интерфейс программы. Аля выбрали в списке "редактирование справочника А", ниже прогрузился фрейм с полями этого справочника. Выбрали редактирование справочника Б - второй фрейм подгрузился. Оба фрейма созданы и упакованы в соответствующие юниты в режиме design-time.

Аля модуль обработки данных под названием А привязан к фрейму и его классу TFrameA, а обработка B так же к TFrameB. Оба унаследованы от TFrame

Создавая фреймы так же были созданы две функции с одинаковыми именами EditAndSave(): integer, которые выполняют РАЗНЫЕ преобразования с данными на фреймах, но возвращают однотипный результат в виде кода ошибки (статуса)

Архитектурно в голове сидит мысль о том, что надо завести переменную, в которой я буду хранить экземпляр текущего активного фрейма, и обращаясь через неё к функции. НО!

Во-первых, какой тип этой переменной должен быть? Ведь фреймы разных классов. Один от TFrameA, второй от TFrameB.
Во-вторых, функция имея одно и тоже название должна быть ... virtual? abstract? overload?

Найдутся тут сеньёоры, понимающие весь этот глубокий мир ООП?
Ответить с цитированием