17.02.2003, 10:42 | #1 |
Модератор
|
Почему формы не наследуются?
Есть форма
ClassDeclaration: public class MyCustomForm extends ObjectRun { int _top, _left; } Хотел унаследовать от нее другую, правлю ClassDeclaration: public class FormRun extends MyCustomForm { } -- Ошибка 92: Некорректное наследование? Кто неправ? |
|
17.02.2003, 11:11 | #2 |
Moderator
|
Цитата:
Хотел унаследовать от нее другую, правлю ClassDeclaration:
public class FormRun extends MyCustomForm { } -- Ошибка 92: Некорректное наследование? |
|
17.02.2003, 11:13 | #3 |
Moderator
|
Цитата:
public class FormRun extends MyCustomForm
|
|
17.02.2003, 12:04 | #4 |
Модератор
|
Цитата:
Ты пытаешься создать свой FormRun, да еще и наследуешь его от своей формы...
Цитата:
вообще-то FormRun это класс. Причем не доступный в исходных кодах
|
|
17.02.2003, 12:24 | #5 |
Moderator
|
Блин, что-то я сам запутался.
FormRun - это не форма. И наследовать его можно( если можно вообще) то от класса: PHP код:
И ГЛАВНОЕ - а зачем это вообще нужно. В чем цель ? Какая задача ? |
|
17.02.2003, 12:35 | #6 |
Модератор
|
Пока что - сохранять и восстанавливать Top и Left формы. Писать каждый раз один и тот же код для реализации всего, что для xSysLastValue требуется - лениво.
Есть конечно другие способы это делать, но так красивше как-то ( было бы ) |
|
17.02.2003, 12:43 | #7 |
----------------
|
Если очень хочется, то можно поизменять классик SysSetupFormRun. Он, как раз, унаследован от FormRun и он же создается через ClassFactory.
|
|
17.02.2003, 12:56 | #8 |
Moderator
|
Цитата:
Пока что - сохранять и восстанавливать Top и Left формы.
1. Пишется класс наследник FormRun 2. Перекрываются у него необходимые метода - init(), close() 3. Создаваемые формы наследуются от созданного класса. |
|
17.02.2003, 13:09 | #9 |
Модератор
|
Уже пробовал - "Некорректное наследование"
|
|
17.02.2003, 13:28 | #10 |
Moderator
|
Цитата:
Уже пробовал - "Некорректное наследование"
Можно вот так: public class dem_FormRun extends FormRun { } где dem_FormRun наследник от FormRun, но толку никакого, так как перекрытыем методы в dem_FormRun'е все равно не отрабатывают. А ты видел формы у которых в ClassDeclaration написано что-то иное, чем: public class dem_FormRun extends ObjectRun |
|
17.02.2003, 13:43 | #11 |
----------------
|
Поясню
(см. предыдущий постинг) методы перекрытые в SysSetupFormRun будут отрабатывать во всех формах системы (см. пример)
|
|
17.02.2003, 14:19 | #12 |
Moderator
|
Цитата:
методы перекрытые в SysSetupFormRun будут отрабатывать во всех формах системы
|
|
17.02.2003, 14:39 | #13 |
Участник
|
Re: Почему формы не наследуются?
Немного не в тему. Думаю, что будет полезным
http://technet.navision.com/usered/B...pplication.htm http://technet.navision.com/usered/B...orms/Forms.htm Особенно рекомендую No code in the forms!: http://technet.navision.com/usered/B...ormsNoCode.htm Видимо формы не наследуются, поскольку считается, что "The purpose of the forms is to support the presentation tier in the three tier client/server model, so you should not find any business logic in the forms." Поэтому предполагается, что формы "используют" классы, а не наследуют. На самом деле согласен, что технически можно бы и наследовать. Тогда получится что-то вроде вложенных форм и... компонентов COM. Но кто работал с COM компонентами согласится, что использование компонентов не есть однозначно хорошо. |
|
18.02.2003, 08:59 | #14 |
Moderator
|
Цитата:
методы перекрытые в SysSetupFormRun будут отрабатывать во всех формах системы
Цитата:
Пока что - сохранять и восстанавливать Top и Left формы.
Вариант предложеный Warm интересен, но в таком случае он не решает проблемы. Может есть еще какие-нибудь варианты ? Цитата:
Но кто работал с COM компонентами согласится, что использование компонентов не есть однозначно хорошо.
|
|