AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: База знаний и проекты
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.02.2005, 08:33   #1  
chi is offline
chi
Участник
 
80 / 13 (1) ++
Регистрация: 21.01.2004
? Изменение контекстного меню
Здравствуйте.
Подскажите, плиз, можно ли добавить в контекстное меню (вызываемое щелчком по правой кнопке), свой элемент? Причем чтобы он был всегда: неважно где я щелкаю - на формах, в репозитарии и т.д.
Спасибо.
Старый 12.03.2007, 08:31   #2  
Gorynych is offline
Gorynych
Участник
 
15 / 17 (1) ++
Регистрация: 28.02.2006
И все таки можно в контекстное меню добавить свой пункт?
Удобным было бы, например, туда добавить Копировать и Вставить, как в Win.

Без перекрывания метода context на формах.

Нашел еще вот тут про это
контекстное меню

Судя по ответам никак, но все таки....

Последний раз редактировалось Gorynych; 12.03.2007 в 08:41.
Старый 12.03.2007, 12:01   #3  
Delfins is offline
Delfins
Участник
 
320 / 39 (2) +++
Регистрация: 20.09.2005
Адрес: Riga, Latvia
Если достаните доступ к системному классу "FormRun"... тогда можно :P
Старый 12.03.2007, 12:06   #4  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
К нему-то как раз прицепиться можно. Но увы, к 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  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2476 (88) +++++++++
Регистрация: 20.08.2005
Можно.

Во вложении dll, с помощью которой это можно сделать.

Использовать просто - создать экземплять класса DLL для этой библиотеки. Пока он будет находиться в памяти добавляются три пункта к стандартному меню:
-Копировать
-Вставить
-Выделить все

Dll можно добавить в class declaration класса info и создавать экземпляр в startupPost() - функционал будет работать до закрытия Axapta

X++:
DLL dll;
;
dll = new Dll("AxPopup.dll");
проверял на sp3 cu1, sp5 kr2

Если надо будет что-то добавить - говорите, посмотрю что можно сделать
Вложения
Тип файла: rar AxPopup.rar (4.8 Кб, 183 просмотров)
__________________
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  
propeller is offline
propeller
Участник
Аватар для propeller
 
359 / 29 (1) +++
Регистрация: 25.07.2007
?
Цитата:
Сообщение от AndyD Посмотреть сообщение
Можно.

Во вложении dll, с помощью которой это можно сделать.

Использовать просто - создать экземплять класса DLL для этой библиотеки. Пока он будет находиться в памяти добавляются три пункта к стандартному меню:
-Копировать
-Вставить
-Выделить все

Dll можно добавить в class declaration класса info и создавать экземпляр в startupPost() - функционал будет работать до закрытия Axapta

X++:
DLL dll;
;
dll = new Dll("AxPopup.dll");
проверял на sp3 cu1, sp5 kr2

Если надо будет что-то добавить - говорите, посмотрю что можно сделать

в акс 4.0 это будет работать? хочу добавить
-Копировать
-Вставить
-Выделить все
Старый 21.01.2010, 12:06   #7  
Nikolaich is offline
Nikolaich
Участник
 
238 / 10 (1) +
Регистрация: 15.12.2004
в 3шке работает идеально а в 4-ке нет - проверял, та же технология размещения для инициализации в StartupPost не работает, видимо DLL для 4-ки не подходит
Старый 10.01.2009, 15:13   #8  
rkorchagin is offline
rkorchagin
Участник
 
81 / 69 (3) ++++
Регистрация: 26.09.2006
Небольшой комментарий:

в 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  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,429 / 1772 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
А пункт меню "Паспорт записи" вас чем не устраивает?
Старый 28.05.2014, 09:41   #10  
userax2009 is offline
userax2009
Участник
 
24 / 10 (1) +
Регистрация: 16.05.2014
Как обьяснили, паспорт записи не удобный для пользователей, имеет лишние поля, поэтому надо делать так, как я описал выше
Старый 28.05.2014, 10:34   #11  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,429 / 1772 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
В случае с паспортом записи, там очень к стати промежуточный диалог есть для выбора конкретного действия, можно просто туда свою кнопку добавить и все.
Старый 28.05.2014, 12:49   #12  
userax2009 is offline
userax2009
Участник
 
24 / 10 (1) +
Регистрация: 16.05.2014
а как это поможет моей задаче ?
Старый 28.05.2014, 13:29   #13  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,429 / 1772 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Вы можете расположить свою функцию не напрямую в контекстном меню, а на диалоге доступном из контекстного меню.

Вам шашечки или ехать, в конце-то концов?

P.S.: Сам когда-то давно искал простой способ добавить к стандартному меню свой пункт - не нашел. Может кто другой подскажет.
Теги
download, faq, законченный пример, контекстное меню, полезное, программно, хак

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
"Зависание" при вызове SysSetupForm из контекстного меню slava DAX: Администрирование 3 12.09.2012 16:13
Переименование контекстного меню NetBus DAX: Программирование 2 17.02.2009 18:37
"Классическое" главное меню в 4.0... glibs DAX: База знаний и проекты 3 11.04.2007 09:58
Как получить TreeNode выделенного узла в АОТ при вызове контекстного меню? Beast-L DAX: Программирование 6 22.01.2007 16:28
Работа с главным меню в Axapta Alexey DAX: Программирование 0 04.01.2002 23:31

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 07:01.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.