![]() |
#1 |
Участник
|
Как обратиться к public-методу формы (Form)?
Скажите, пожалуйста, как обратиться к public-методу (не унаследованному от FormRun) формы.
|
|
![]() |
#2 |
Banned
|
X++: Object object = formRun; object.xxxMyMethod(); |
|
|
За это сообщение автора поблагодарили: bodeaux (1). |
![]() |
#3 |
Участник
|
Я для этих целей делаю класс-интерфейс, в котором прописываю сигнатуры нужных методов, а в форме делаю реализацию интерфейса.
Соответственно, вызов делается так X++: Object object = formRun; MyInterface intf = object; ; intf.xxxMyMethod(); Скользкий момент с intf = object. ![]() Перед присвоением делаю проверку на реализацию интерфейса формой. Так как все формы основаны одном классе FormRun, то стандартная проверка через DictClass в данном случае не подходит. Пришлось реализовывать ее через ScannerClass. Что бы не заморачиваться с подобными сложностями, можно просто проверять по списку имен форм, что несколько коряво ![]()
__________________
Axapta v.3.0 sp5 kr2 Последний раз редактировалось AndyD; 30.11.2012 в 14:28. |
|
|
За это сообщение автора поблагодарили: macklakov (5), Logger (3), gl00mie (1), S.Kuskov (2), bodeaux (1). |
![]() |
#4 |
Участник
|
На всякий пожарный, используйте проверку Global::formHasMethod перед вызовом метода формы
|
|
|
За это сообщение автора поблагодарили: bodeaux (1). |
![]() |
#5 |
Участник
|
С точки зрения вызова метода формы, formHasMethod() проверяет лишь наличие на форме метода с указанным именем - ни типы/число формальных параметров, ни тип возвращаемого значения он вам не проверит, к сожалению.
|
|
|
![]() |
||||
Тема | Ответов | |||
dynamicsaxtraining: Vendor returns | 0 | |||
dynamicsaxtraining: Sales | 0 | |||
dynamicsaxtraining: Paying a Vendor | 0 | |||
dynamicsaxtraining: Purchase | 0 | |||
Русская локализация Axapta 3 ? | 59 |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|