Цитата:
Сообщение от
S.Kuskov
Можно при помощи SysDictClass.hasObjectMethod перед вызовом метода проверять есть ли он у данного объекта. Тогда отчёт можно будет вызывать и из других мест при условии если там также реализован необходимый метод
SysDictClass в общем случае не позволит узнать о существовании метода
на форме (за исключением методов, реализованных в классе SysSetupFormRun), для форм есть специально обученный метод Form::formRunHasMethod() и обертка для него - Global::formHasMethod(). Вообще же, по-моему, если хочется гибкости во взаимодействии с вызывающими объектами, то предпочтительнее работать через какой-нить интерфейс, тогда будут проверяться сигнатуры методов целиком, а не просто их название, причем еще на этапе компиляции тех классов, которые реализуют интерфейс. Но и тут с формами засада: хотя для них и можно указать, что якобы они реализуют тот или иной интерфейс, однако, и компилятор это никак не проверяет, и SysDictClass не способен во время выполнения это определить.