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

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Vik
Местный житель
Сообщения: 370
Зарегистрирован: 28 сен 2006, 15:43
Откуда: Санкт-Петербург
Контактная информация:

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

Сообщение 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.
Ренат
Постоянный обитатель
Сообщения: 194
Зарегистрирован: 12 сен 2007, 16:34
Откуда: Глазов
Контактная информация:

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

Сообщение Ренат »

edward_K писал(а):значится все таки нужно перехватывать cmHotkey. Местами прописано RunCommand(RunMenu), а местами стоит case RunMenu of
не очень понял что это значит :-?
Ренат
Постоянный обитатель
Сообщения: 194
Зарегистрирован: 12 сен 2007, 16:34
Откуда: Глазов
Контактная информация:

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

Сообщение Ренат »

edward_K писал(а):значится все таки нужно перехватывать cmHotkey. Местами прописано RunCommand(RunMenu), а местами стоит case RunMenu of
не очень понял что это значит :-?
Vik
Местный житель
Сообщения: 370
Зарегистрирован: 28 сен 2006, 15:43
Откуда: Санкт-Петербург
Контактная информация:

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

Сообщение Vik »

А вы проверяли код, который я привел?
Ренат
Постоянный обитатель
Сообщения: 194
Зарегистрирован: 12 сен 2007, 16:34
Откуда: Глазов
Контактная информация:

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

Сообщение Ренат »

Vik Да. Только что проверил. Все правильно работает. Большое Вам спасибо!
Vik
Местный житель
Сообщения: 370
Зарегистрирован: 28 сен 2006, 15:43
Откуда: Санкт-Петербург
Контактная информация:

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

Сообщение Vik »

Немного неправильно написал. К имени меню еще надо добавлять 'MENU ' при поиске в X$RESOURCES.
Ренат
Постоянный обитатель
Сообщения: 194
Зарегистрирован: 12 сен 2007, 16:34
Откуда: Глазов
Контактная информация:

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

Сообщение Ренат »

опять я не понял. Сори. Где нужно добавить "MENU" ?
Vik
Местный житель
Сообщения: 370
Зарегистрирован: 28 сен 2006, 15:43
Откуда: Санкт-Петербург
Контактная информация:

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

Сообщение Vik »

Посмотрите тут
Ренат
Постоянный обитатель
Сообщения: 194
Зарегистрирован: 12 сен 2007, 16:34
Откуда: Глазов
Контактная информация:

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

Сообщение Ренат »

К стыду своему ничего не понял. Щас совсем некогда думать. Надо отладкой заниматся.
Добавил

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

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

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

  m_MenuName := 'L_KATORG::mnuKatOrgEdit'
на

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

  m_MenuName := MENU_PREFFIX +'L_KATORG::mnuKatOrgEdit'
Изменений не заметил. Но все работает!
Vik
Местный житель
Сообщения: 370
Зарегистрирован: 28 сен 2006, 15:43
Откуда: Санкт-Петербург
Контактная информация:

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

Сообщение Vik »

Изменений на глаз было бы и не заметно, просто меню бы у вас при каждом запуске изменялось)
Ренат
Постоянный обитатель
Сообщения: 194
Зарегистрирован: 12 сен 2007, 16:34
Откуда: Глазов
Контактная информация:

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

Сообщение Ренат »

Все было хорошо пока не подключил ресурсник к рабочей Галактике.
При открытии каталога организаций у пользователя появляется сообщение

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

Предупреждение
Возникло необработанное исключение
ExMenuItemStateError (ExVip)
У Вас нет прав для удаления меню.
"Да" - Продолжить, "Нет" - Отлаживать в окне отладчика
"Отмена" - Не выдавать больше это сообщение
Да   Нет   Отмена   
Как с этим бороться? Может уже плюнуть и добавить в окно редактирования кнопочку для вызова интерфейса?
Если да, то как это можно сделать?
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

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

Сообщение edward_K »

Vik писал(а):Может уже плюнуть и добавить в окно редактирования кнопочку для вызова интерфейса?
ищем "cfsCreateObject ('button'," , при непонятках открываем новую тему. А вообще я уже предлагал добавлять меню в фейсе на добавление своих настроек.
Vik
Местный житель
Сообщения: 370
Зарегистрирован: 28 сен 2006, 15:43
Откуда: Санкт-Петербург
Контактная информация:

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

Сообщение Vik »

edward_K писал(а):
Vik писал(а):Может уже плюнуть и добавить в окно редактирования кнопочку для вызова интерфейса?
ищем "cfsCreateObject ('button'," , при непонятках открываем новую тему. А вообще я уже предлагал добавлять меню в фейсе на добавление своих настроек.
Это никак не я писал)) А вообще, не пойму никак, почему возникает затруднение в том, чтобы создать меню под администратором.
Последний раз редактировалось Vik 27 сен 2010, 19:41, всего редактировалось 1 раз.
Ренат
Постоянный обитатель
Сообщения: 194
Зарегистрирован: 12 сен 2007, 16:34
Откуда: Глазов
Контактная информация:

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

Сообщение Ренат »

:grin:
Ренат
Постоянный обитатель
Сообщения: 194
Зарегистрирован: 12 сен 2007, 16:34
Откуда: Глазов
Контактная информация:

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

Сообщение Ренат »

Под администратором все работает. Нужно чтобы обычные пользователи заходили и работали с этим меню.
Ответить