Показать сообщение отдельно
Старый 03.11.2009, 13:04   #37  
Murlin is offline
Murlin
Возьми свет!!!
Аватар для Murlin
Самостоятельные клиенты AX
Злыдни
 
291 / 32 (2) +++
Регистрация: 22.09.2008
Адрес: Тюмень, Рашан Федерашан
Цитата:
Сообщение от alex55 Посмотреть сообщение
Можно ли программно (из кода Аксапты) получить экземпляр текущего Editor (окна с кодом)?
Задача состоит в выполнении с Editor некоторых действий (посредством AxGoToDeclaration) при нажатии UserDefined кнопки в Tabax.

Axapta 3.0 sp4
я делал вот так
все было это сделано для класса который постоянно торчит в памяти и при нажатию на нек. кнопку вставляет в код комментарий с именем пользователя и датой
X++:
void sendMessage()
{
#WinAPI
int i=infolog.hWnd();
;
i = WinAPI::findWindowEx(i,0,"MDIClient","");
i = WinAPI::findWindowEx(i,0,"AxMDIChildWindow","");
i = WinAPI::findWindowEx(i,0,"AxEdTabCtrl","");
i = WinAPI::findWindowEx(i,0,"AxPaneWnd","");
WinAPI::sendMessageEx(i,#WM_SYSKEYDOWN,0x4D,0x20320001);
WinAPI::sendMessageEx(i,#WM_SYSCHAR,0x6D,0x20320001);
WinAPI::sendMessageEx(i,#WM_SYSKEYUP,0x4D,0xF0320001);
}
void sendMessageEscMessage()
{
#WinAPI
int i=infolog.hWnd();
;
i = WinAPI::findWindowEx(i,0,"MDIClient","");
i = WinAPI::findWindowEx(i,0,"AxMDIChildWindow","");
i = WinAPI::findWindowEx(i,0,"AxEdTabCtrl","");
i = WinAPI::findWindowEx(i,0,"AxPaneWnd","");
WinAPI::sendMessageEx(i,0x7EE,0,0x00CA00E0);
}
В классе EditorScripts в методе container getApplicableScripts(Editor e) записывал значение e - в глобальную переменную
infolog.globalCache.set()

Последний раз редактировалось Murlin; 03.11.2009 в 13:07.
За это сообщение автора поблагодарили: alex55 (1).