Страница 1 из 1

Можно ли добавить свой пункт в меню модуля?

Добавлено: 15 июл 2004, 19:42
igornov
Если да то как?

Re: Можно ли добавить свой пункт в меню модуля?

Добавлено: 16 июл 2004, 12:12
Deinis

Re: Можно ли добавить свой пункт в меню модуля?

Добавлено: 19 июл 2004, 17:05
ApachiA
легче свой контур добавить :)

Re: Можно ли добавить свой пункт в меню модуля?

Добавлено: 23 июл 2004, 16:53
Maverick
Ребят не спорьте )) можно все красиво сделать галактическими функциями )))
все подробно расписано в ASDK

Работает начиная с атлантиса 3.03.12

Function LoadMenu (Name : String ) : LongInt ;

Function AddMenuItem (MenuID:LongInt;Name:String;Command:Word):Boolean ;

Function RunLoadMenu (MenuID : LongInt; XPos : Integer;YPos : Integer ) : Word ;

Пример
const
cmTest1 = 3000;
cmTest2 = 3001;
cmTest3 = 3002;
cmTest4 = 3003;
cmTest5 = 3004;
cmAddTest = 3005;
cmRunMyMenu = 3010;
end;

interface ATest;
create view Test
var MenuID : LongInt;
as select * from Order;
...

HandleEvent
cmDefault :
{
PutCommand(cmRunMyMenu);
}
cmRunMyMenu :
{
MenuID := LoadMenu('TestMenu');
AddMenuItem(MenuID,'Новый пункт',cmAddTest);
case RunLoadMenu(MenuID) of
cmTest1: message('Test1');
cmTest2: message('Test2');
cmTest3: message('Test3');
cmTest4: message('Test4');
cmTest5: message('Test5');
cmAddTest: message('AddTest');
end; //case
}
end; //HandleEvent
end.

Все что вам нужно - написать подобный интерфейс и вставить его через конфиг чтобы загружался при старте галки. В интере проверять - если такой пункт меню есть - не вставлять, иначе - вставлять

Re: Можно ли добавить свой пункт в меню модуля?

Добавлено: 26 июл 2004, 16:38
dp
1. как поставить интерфейс чтобы он отрабатывал при старте Галактики сам (и выполнял LoadMenu)?
2. кто будет запускать и обслуживать RunLoadMenu?
3. кто будет запускать DisposeLoadMenu?

если есть работающий пример - в студию.
бо дня два промучался и плюнул на это...

по-моему оно работает только если меню нужно в своем интерфейсе - по типу того которое по правой кнопке...

Re: Можно ли добавить свой пункт в меню модуля?

Добавлено: 27 июл 2004, 12:01
Maverick
Есть така хитрая штука в Галке
1.Открываешь galnet.cfg
2. Смотришь, есть ли у тебя в нем секция Compilers
3. Если есть, добавляешь в ней параметр RunIdent = ИМЯ_ИНТЕРФЕЙСА, если нет, то создаешь эту секцию и опять же прописываешь RunIdent = ИМЯ_ИНТЕРФЕЙСА
4. В результате после старта галки первым будет загружаться твой интерфейс )))

RunIdent
Назначение : Имя интерфейса для запуска (напр. VASIA)
Вид параметра : Строковый (значения - строки, можно в любых кавычках)
Примечание : Записывается в файл конфигурации пользователя.
Синоним : /RI _ ключ (пример /RI=строка или /RI:строка)

А работающих примеров масса - в Хозоперациях практически все менюхи по такому принципу построены