Страница 2 из 6

Re: Как узнать имя локального меню?

Добавлено: 23 сен 2010, 15:48
Vik
Нет, тут все просто должно быть. Попробуйте так:

Код: Выделить всё

#Component "L_KATORG"
alter interface KATORG;

create view
var menuID:longint;
as select * from X$Resources(ReadOnly) ;

Window WKATORG
HandleEvent
cmValue41:
{
  RunInterface('getaddr_kladr',Katorg.Nrec, Katorg.Name);
};
end
end;

HandleEvent
cmInit :
{
  if (Inherited::HandleEvent(cmInit) != heOk)
  {
    Abort;
    Exit;
  }
  var m_MenuName : string;
  var m_Menu : longint;
  m_MenuName := 'L_KATORG::mnuKatOrgEdit'
  if (RecordExists X$Resources where (( 3 == X$Resources.XR$Type and m_MenuName == X$Resources.XR$Name))
       != tsOk)
  {
    DeleteMenuHowDynamics (m_MenuName);
    m_Menu := LoadMenuEx (m_MenuName, true, false);
    AddMenuItem(m_Menu, 'Сформировать адрес из внешнего Кладра',cmValue41);
    StoreMenuHowDynamics (m_Menu, m_MenuName);
    DisposeLoadMenu (m_Menu);
    ReinitHeaderMenu;
  }
};//cmInit

end;
end.

Re: Как узнать имя локального меню?

Добавлено: 23 сен 2010, 15:48
Ренат
edward_K писал(а):значится все таки нужно перехватывать cmHotkey. Местами прописано RunCommand(RunMenu), а местами стоит case RunMenu of
не очень понял что это значит :-?

Re: Как узнать имя локального меню?

Добавлено: 23 сен 2010, 15:53
Ренат
edward_K писал(а):значится все таки нужно перехватывать cmHotkey. Местами прописано RunCommand(RunMenu), а местами стоит case RunMenu of
не очень понял что это значит :-?

Re: Как узнать имя локального меню?

Добавлено: 23 сен 2010, 16:01
Vik
А вы проверяли код, который я привел?

Re: Как узнать имя локального меню?

Добавлено: 23 сен 2010, 16:05
Ренат
Vik Да. Только что проверил. Все правильно работает. Большое Вам спасибо!

Re: Как узнать имя локального меню?

Добавлено: 23 сен 2010, 16:50
Vik
Немного неправильно написал. К имени меню еще надо добавлять 'MENU ' при поиске в X$RESOURCES.

Re: Как узнать имя локального меню?

Добавлено: 23 сен 2010, 16:57
Ренат
опять я не понял. Сори. Где нужно добавить "MENU" ?

Re: Как узнать имя локального меню?

Добавлено: 23 сен 2010, 17:11
Vik
Посмотрите тут

Re: Как узнать имя локального меню?

Добавлено: 23 сен 2010, 17:22
Ренат
К стыду своему ничего не понял. Щас совсем некогда думать. Надо отладкой заниматся.
Добавил

Код: Выделить всё

const
  MENU_PREFFIX : string[5] = 'MENU ';
end;
и исправил

Код: Выделить всё

  m_MenuName := 'L_KATORG::mnuKatOrgEdit'
на

Код: Выделить всё

  m_MenuName := MENU_PREFFIX +'L_KATORG::mnuKatOrgEdit'
Изменений не заметил. Но все работает!

Re: Как узнать имя локального меню?

Добавлено: 23 сен 2010, 18:14
Vik
Изменений на глаз было бы и не заметно, просто меню бы у вас при каждом запуске изменялось)

Re: Как узнать имя локального меню?

Добавлено: 27 сен 2010, 19:15
Ренат
Все было хорошо пока не подключил ресурсник к рабочей Галактике.
При открытии каталога организаций у пользователя появляется сообщение

Код: Выделить всё

Предупреждение
Возникло необработанное исключение
ExMenuItemStateError (ExVip)
У Вас нет прав для удаления меню.
"Да" - Продолжить, "Нет" - Отлаживать в окне отладчика
"Отмена" - Не выдавать больше это сообщение
Да   Нет   Отмена   
Как с этим бороться? Может уже плюнуть и добавить в окно редактирования кнопочку для вызова интерфейса?
Если да, то как это можно сделать?

Re: Как узнать имя локального меню?

Добавлено: 27 сен 2010, 19:25
edward_K
Vik писал(а):Может уже плюнуть и добавить в окно редактирования кнопочку для вызова интерфейса?
ищем "cfsCreateObject ('button'," , при непонятках открываем новую тему. А вообще я уже предлагал добавлять меню в фейсе на добавление своих настроек.

Re: Как узнать имя локального меню?

Добавлено: 27 сен 2010, 19:39
Vik
edward_K писал(а):
Vik писал(а):Может уже плюнуть и добавить в окно редактирования кнопочку для вызова интерфейса?
ищем "cfsCreateObject ('button'," , при непонятках открываем новую тему. А вообще я уже предлагал добавлять меню в фейсе на добавление своих настроек.
Это никак не я писал)) А вообще, не пойму никак, почему возникает затруднение в том, чтобы создать меню под администратором.

Re: Как узнать имя локального меню?

Добавлено: 27 сен 2010, 19:41
Ренат
:grin:

Re: Как узнать имя локального меню?

Добавлено: 27 сен 2010, 20:12
Ренат
Под администратором все работает. Нужно чтобы обычные пользователи заходили и работали с этим меню.