27.12.2022, 18:01 | #1 |
Участник
|
Определение перекрытия метода на форме
Добрый день.
Подскажите, пожалуйста, как можно определить наличие кастомного метода на контроле формы? Т.е. есть некий контрол (FormStringControl), на создана функция isEnable. Этот контрол передается в какую-то еще функцию преобразовываясь в Object, где и вызывается isEnable. Очевидно, что данный способ взаимодействия небезопасный (на этапе компиляции ошибку не получить) и хочется как минимум валидировать наличие целевой функции. |
|
|
За это сообщение автора поблагодарили: Pandasama (2). |
27.12.2022, 18:33 | #2 |
Участник
|
Перенести эти методы на форму с контрола и проверять что форма является нужной вам формой?
|
|
27.12.2022, 18:40 | #3 |
Участник
|
Может попробовать получить TreeNode самого контрола (тапа как это в классе SysFormRun делает метод ctrlId2treeNodePath) а потом добавить к нему еще metods\Имя метода?
Ну и попробовать найти такой по аналогии с hasMethod того же SysFormRun . Никогда не пробовал, но может что-то сработает. |
|
|
За это сообщение автора поблагодарили: Товарищ ♂uatr (4). |
28.12.2022, 00:20 | #4 |
Участник
|
Спасибо.
В очередной раз поражаюсь "выкрутасам", которые необходимо осуществлять в Аксапте для, как казалось бы, получения простых результатов. Решение: X++: boolean test(FormControl _control, str _methodName) { ; return Form::formRunHasMethod(SysDictClass::as(_control, classNum(Object)), _methodName); } Последний раз редактировалось Товарищ ♂uatr; 28.12.2022 в 00:34. |
|
28.12.2022, 08:19 | #5 |
Участник
|
То есть передаем сам контрол в параметре, который ждет форму и Акса догадалась что нам нужно?
Интересные дела, главное "интуитивно". |
|