|  21.10.2008, 21:16 | #1 | 
| Участник | 
			
			Добрый день всем! Может кто-нить знает и подскажет, а то я уже голову сломал.. В общем задача такая: нужно иметь возможность склонять данные, соответственно из любого поля на таблице иметь доступ к таблице склонения. Я хотел метод доступа запихнуть в контекстное меню, которое на гриде, но не нашел как оно формируется. Может кто знает как это сделать? Или может как-то можно иначе? А то кнопками не интересно совсем( Спасибо. | 
|  | 
|  22.10.2008, 08:51 | #2 | 
| Участник | 
			
			Форма tutorial_PopupMenu
		 | 
|  | 
|  22.10.2008, 12:03 | #3 | 
| Участник | 
			
			Спасибо за ответ! Но с созданием своего контекстного меню нет проблем, хотелось запихнуть процедуру именно в стандартное контекстное меню
		 | 
|  | 
|  23.10.2008, 11:46 | #4 | 
| Участник | 
			
			Перекрывайте не метод Context(), а showContextMenu() <div class='XPPtop'>X++</div><div class='XPP'> [color=:blue]public[/color] [color=:blue]int[/color] showContextMenu([color=:blue]int[/color] _menuHandle) { [color=:blue]int[/color] ret; PopupMenu popupMenu = [color=:blue]new[/color] PopupMenu(this.hWnd()); [color=:blue]int[/color] item1; [color=:blue]int[/color] item2; [color=:blue]int[/color] item3; [color=:blue]int[/color] item4; [color=:blue]int[/color] item5; ; WinAPI::destroyMenu(popupMenu.hMenu()); popupMenu.hMenu(_menuHandle); item1 = popupMenu.insertItem([color=:red]"Menu item 1"[/color]); item2 = popupMenu.insertItem([color=:red]"Menu item 2"[/color]); item3 = popupMenu.insertItem([color=:red]"Menu item 3"[/color]); item4 = popupMenu.insertItem([color=:red]"Menu item 4"[/color]); item5 = popupMenu.insertItem([color=:red]"Menu item 5"[/color]); ret = [color=:blue]super[/color](popupMenu.hMenu()); [color=:blue]switch[/color] (ret) { [color=:blue]case[/color] item1: info([color=:red]"Item 1"[/color]); [color=:blue]break[/color]; [color=:blue]case[/color] item2: info([color=:red]"Item 2"[/color]); [color=:blue]break[/color]; [color=:blue]case[/color] item3: info([color=:red]"Item 3"[/color]); [color=:blue]break[/color]; [color=:blue]case[/color] item4: info([color=:red]"Item 4"[/color]); [color=:blue]break[/color]; [color=:blue]case[/color] item5: info([color=:red]"Item 5"[/color]); [color=:blue]break[/color]; } [color=:blue]return[/color] ret; }</div> 
				__________________ Axapta v.3.0 sp5 kr2 | 
|  | 
|  23.10.2008, 13:05 | #5 | 
| Участник | Цитата: 
		
			Перекрывайте не метод Context(), а showContextMenu()
		
	 | 
|  | 
|  23.10.2008, 14:57 | #6 | 
| Участник | 
			
			Либо перекрывать метод showContextMenu() на каждом контроле формы, либо писать свою внешнюю библиотеку (com или dll), в которых реализовывать перехват и распознавание контекстного меню и добавление нужных пунктов. Последнее можно реализовать и без привлечения внешних обработок, но занятие будет достаточно трудоемкое. По-моему, если речь не идет о добавлении для всех форм, первый пункт будет самым простым и быстрым. 
				__________________ Axapta v.3.0 sp5 kr2 | 
|  | 
|  24.10.2008, 12:09 | #7 | 
| Участник | 
			
			Можно оказывается перекрыть этот метод на табах, только мне так и не удалось вытащить поле, на котором стоит указатель. Может кто-нибудь знает как? Все контролы перекрывать очень не хочется, потому как форм оч много, да и полей тоже. Есть еще один метод - форма документооборота, туда без проблем можно добавить процедуру. Но это не так красиво, как с контекстным меню
		 | 
|  |