Столкнулся с подобной задачей.
Нужно открыть эту же форму, только в другой компании.
Сделал немного по-другому:
Код:
#define.company('dat')
Args args; // ?????? ????? Args
FormRun formRun; // ?????? ????? FormRun
int hwnd;
;
super();
hwnd = element.hWnd();
element.close();
appl.setDefaultCompany(#company, false);
SysSecurity::reload(false);
args = new Args();
args.parm(int2str(hwnd));
// args.caller( this );
args.name(formStr(PurchTable));
formRun = ClassFactory.formRunClass(args);
formRun.init();
formRun.run();
formRun.wait();
infolog.clear();
Все бы хорошо - то есть другая компания и форма в ней открваются, да только вот старая форма остается.
Хотя, закрывать пытаюсь и в этом методе (простое element.close());
и в init открываемой формы, если передали parm()
Код:
hwnd = str2int(element.args().parm());
WinAPI::sendMessageEx(hwnd, #WM_SYSCOMMAND, #SC_CLOSE, 0);
Может есть другой способ?
или, может, кто-то знает хороший способ открытия формы в другой компании?