Показать сообщение отдельно
Старый 27.09.2006, 12:06   #17  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Столкнулся с подобной задачей.
Нужно открыть эту же форму, только в другой компании.

Сделал немного по-другому:

Код:
    #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);
Может есть другой способ?
или, может, кто-то знает хороший способ открытия формы в другой компании?