|
18.02.2005, 08:33 | #1 |
Участник
|
Изменение контекстного меню
Здравствуйте.
Подскажите, плиз, можно ли добавить в контекстное меню (вызываемое щелчком по правой кнопке), свой элемент? Причем чтобы он был всегда: неважно где я щелкаю - на формах, в репозитарии и т.д. Спасибо. |
|
12.03.2007, 08:31 | #2 |
Участник
|
И все таки можно в контекстное меню добавить свой пункт?
Удобным было бы, например, туда добавить Копировать и Вставить, как в Win. Без перекрывания метода context на формах. Нашел еще вот тут про это контекстное меню Судя по ответам никак, но все таки.... Последний раз редактировалось Gorynych; 12.03.2007 в 08:41. |
|
12.03.2007, 12:01 | #3 |
Участник
|
Если достаните доступ к системному классу "FormRun"... тогда можно :P
|
|
12.03.2007, 12:06 | #4 |
Administrator
|
К нему-то как раз прицепиться можно. Но увы, к FormRun доступа недостаточно.
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
13.03.2007, 18:04 | #5 |
Участник
|
Можно.
Во вложении dll, с помощью которой это можно сделать. Использовать просто - создать экземплять класса DLL для этой библиотеки. Пока он будет находиться в памяти добавляются три пункта к стандартному меню: -Копировать -Вставить -Выделить все Dll можно добавить в class declaration класса info и создавать экземпляр в startupPost() - функционал будет работать до закрытия Axapta X++: DLL dll; ; dll = new Dll("AxPopup.dll"); Если надо будет что-то добавить - говорите, посмотрю что можно сделать
__________________
Axapta v.3.0 sp5 kr2 |
|
|
За это сообщение автора поблагодарили: raz (3), kashperuk (6), oip (8), gl00mie (4), Eldar9x (2), klimova_m (1). |
20.07.2009, 17:05 | #6 |
Участник
|
Цитата:
Сообщение от AndyD
Можно.
Во вложении dll, с помощью которой это можно сделать. Использовать просто - создать экземплять класса DLL для этой библиотеки. Пока он будет находиться в памяти добавляются три пункта к стандартному меню: -Копировать -Вставить -Выделить все Dll можно добавить в class declaration класса info и создавать экземпляр в startupPost() - функционал будет работать до закрытия Axapta X++: DLL dll; ; dll = new Dll("AxPopup.dll"); Если надо будет что-то добавить - говорите, посмотрю что можно сделать в акс 4.0 это будет работать? хочу добавить -Копировать -Вставить -Выделить все |
|
21.01.2010, 12:06 | #7 |
Участник
|
в 3шке работает идеально а в 4-ке нет - проверял, та же технология размещения для инициализации в StartupPost не работает, видимо DLL для 4-ки не подходит
|
|
10.01.2009, 15:13 | #8 |
Участник
|
Небольшой комментарий:
в 4-ой аксапте когда попуп меню строится через PopuMenu класс - сразу теряется стиль меню (Office 2003), а когда вызывется super(handle) - то меню выглядит как надо. Поэтому когда потребовалось добавить свой пункт меню, причём в определённую позицию (PopupMenu.insertItem - на самом деле делает AppendMenu - добавление в конце) пришлось прямо на контроле (StringEdit ячейке Grid) писать: X++: //TE-rko public int showContextMenu(int _menuHandle) { #WinApi #define.filterByLocaLang(100) #define.UserDLL('USER32') int selection; DLL _winApiDLL = new DLL(#UserDLL); DLLFunction _insertMenu = new DLLFunction(_winApiDLL, 'InsertMenuW'); ; _insertMenu.returns(ExtTypes::DWord); _insertMenu.arg(ExtTypes::DWord, ExtTypes::DWord, ExtTypes::DWord, ExtTypes::DWord, ExtTypes::WString); _insertMenu.call(_menuHandle, 2, #MF_BYPOSITION + #MF_STRING, #filterByLocaLang, "Filter by local name"); selection = super(_menuHandle); switch (selection) { case #filterByLocaLang: element.filterByLocalLang(); //моя реакция на меню break; } return selection; } |
|
27.05.2014, 15:46 | #9 |
Участник
|
А пункт меню "Паспорт записи" вас чем не устраивает?
|
|
28.05.2014, 09:41 | #10 |
Участник
|
Как обьяснили, паспорт записи не удобный для пользователей, имеет лишние поля, поэтому надо делать так, как я описал выше
|
|
28.05.2014, 10:34 | #11 |
Участник
|
В случае с паспортом записи, там очень к стати промежуточный диалог есть для выбора конкретного действия, можно просто туда свою кнопку добавить и все.
|
|
28.05.2014, 12:49 | #12 |
Участник
|
а как это поможет моей задаче ?
|
|
28.05.2014, 13:29 | #13 |
Участник
|
Вы можете расположить свою функцию не напрямую в контекстном меню, а на диалоге доступном из контекстного меню.
Вам шашечки или ехать, в конце-то концов? P.S.: Сам когда-то давно искал простой способ добавить к стандартному меню свой пункт - не нашел. Может кто другой подскажет. |
|
Теги |
download, faq, законченный пример, контекстное меню, полезное, программно, хак |
|
|