|
![]() |
#1 |
Участник
|
![]()
Аналогичная задача.
Из формы 1 вызывается форма 2. По нажатию на форме 2 кнопки выполняется класс, после чего необходимо отжать чекбокс в гриде на форме 1. Делаю: в форма2.Init() X++: CallerForm=element.args().caller(); //где CallerForm обьявлен в ClassDeclaration формы: //Form CallerForm; X++: void clicked() { FormCheckBoxControl fieldCopy; ; super(); // fieldCopy = CallerForm.design().controlName(identifierstr(Copy)); //выдает ошибку компилятора // "Класс FormBuildDesign не содержит эту функцию" fieldCopy = CallerForm.design().control(identifierstr(Copy)); // выдает ошибку времени выполнения "Обьект не инициализирован" // на следующей строчке fieldCopy.value(false); } ![]() Что неверно? Или как эту задачу выполнить правильнее? |
|
![]() |
#2 |
Участник
|
|
|
![]() |
#3 |
Участник
|
Отлично! Теперь
X++: fieldCopy = CallerForm.design().controlName(identifierstr(Copy)); X++: CallerForm.dataSource().research(); |
|
![]() |
#4 |
Участник
|
|
|
![]() |
#5 |
Участник
|
Все равно чекбокс отмечен. Вероятно из-за того, что его значение хранится в переменной mark формы 1. К переменным как-то можно добраться? Или придется заводить невидимый контрол на форме1, который будет изменять переменную mark?
|
|
![]() |
#6 |
Участник
|
Тогда вместо обращения к контролу, вызовите edit-метод напрямую.
X++: Object obj; .... obj = callerForm; obj.myEditMethod(true, false); callerForm.redraw(); |
|
![]() |
#7 |
Участник
|
Предложу работающий но не стандартный метод...
winapi::sendmessage(callerform.hwnd(), WM_KEYDOWN, VK_F5, 0) :O) Для разнообразия. C уважением, Дмитрий. |
|
|
|