30.11.2012, 13:53 | #1 |
Участник
|
Как обратиться к public-методу формы (Form)?
Скажите, пожалуйста, как обратиться к public-методу (не унаследованному от FormRun) формы.
|
|
30.11.2012, 13:53 | #2 |
Banned
|
X++: Object object = formRun; object.xxxMyMethod(); |
|
|
За это сообщение автора поблагодарили: bodeaux (1). |
30.11.2012, 14:26 | #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). |
30.11.2012, 14:31 | #4 |
Участник
|
На всякий пожарный, используйте проверку Global::formHasMethod перед вызовом метода формы
|
|
|
За это сообщение автора поблагодарили: bodeaux (1). |
30.11.2012, 23:54 | #5 |
Участник
|
С точки зрения вызова метода формы, formHasMethod() проверяет лишь наличие на форме метода с указанным именем - ни типы/число формальных параметров, ни тип возвращаемого значения он вам не проверит, к сожалению.
|
|
|
Похожие темы | ||||
Тема | Ответов | |||
dynamicsaxtraining: Vendor returns | 0 | |||
dynamicsaxtraining: Sales | 0 | |||
dynamicsaxtraining: Paying a Vendor | 0 | |||
dynamicsaxtraining: Purchase | 0 | |||
Русская локализация Axapta 3 ? | 59 |
|