Создание контексного меню
Модераторы: m0p3e, edward_K, Модераторы
-
- Постоянный гость
- Сообщения: 58
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: -
- Контактная информация:
Создание контексного меню
Я знаю как создаются интерфесы но незнаю как создавать контексное меню допустим к какомуто бровсу
Кинте пожалуста простенкий примерчик как назначить горячие клавиши а то мои юзеры кнопки на мышах точно скоро сломают
Кинте пожалуста простенкий примерчик как назначить горячие клавиши а то мои юзеры кнопки на мышах точно скоро сломают
ХОЧУ изучить правила написания ИНТЕРФЕЙСОВ, создание собственных контуров и компиляции ADF словарей :)
Re: Создание контексного меню
Используй событие cmHotKeys
cmHotKeys : PutHotCommand ( RunMenu ( 'PlanPost_HotKeys' ) );
После описания фейса добавь:
PlanPost_HotKeys menu
{
- 'Расширенная информация (Ctrl+Enter)' , cmAttrib;
------------;
- 'Добавить позицию (F7)', cmInsert;
- 'Удалить позицию (F8)' , cmDelete;
------------;
}
cmHotKeys : PutHotCommand ( RunMenu ( 'PlanPost_HotKeys' ) );
После описания фейса добавь:
PlanPost_HotKeys menu
{
- 'Расширенная информация (Ctrl+Enter)' , cmAttrib;
------------;
- 'Добавить позицию (F7)', cmInsert;
- 'Удалить позицию (F8)' , cmDelete;
------------;
}
-
- Постоянный гость
- Сообщения: 58
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: -
- Контактная информация:
Re: Создание контексного меню
Спасибо бум пробывать!!!
ХОЧУ изучить правила написания ИНТЕРФЕЙСОВ, создание собственных контуров и компиляции ADF словарей :)
-
- Местный житель
- Сообщения: 474
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Сибирь-матушка
- Контактная информация:
Re: Создание контексного меню
Дополнительно :
1) если указываешь , как в примере от Мор3е, "горячие" клавиши типа "Ctrl+Enter" - убедись что они есть в том статусе, который идет с фейсом - противном случае толку от их указания ноль
2) обязательно перед посылкой полученной команды от меню проверяй, что за команда : если в фейсе вызвали меню, но не выбрали никакого пункта, функция RunMenu возвращает код команды 11(ХБЗ что за команда, нигде ее идентификатор не нашел, но похоже очень что это какое-то отношение к cmDone или cmClose имеет ), которая при помещении ее в обработку через PutHotCommand или PutCommand
закрывает интерфейс ...
3) константы своих команд в меню опиши заранее и включи в компиляцию проекта перед компиляцией интерфейса и меню ...
P.S. Что в Support'e, что в VIP'е не хочет комплилиться ни меню, ни диалоги - вылетает ...кто мож подскажет - что за ботва ?
1) если указываешь , как в примере от Мор3е, "горячие" клавиши типа "Ctrl+Enter" - убедись что они есть в том статусе, который идет с фейсом - противном случае толку от их указания ноль
2) обязательно перед посылкой полученной команды от меню проверяй, что за команда : если в фейсе вызвали меню, но не выбрали никакого пункта, функция RunMenu возвращает код команды 11(ХБЗ что за команда, нигде ее идентификатор не нашел, но похоже очень что это какое-то отношение к cmDone или cmClose имеет ), которая при помещении ее в обработку через PutHotCommand или PutCommand
закрывает интерфейс ...
3) константы своих команд в меню опиши заранее и включи в компиляцию проекта перед компиляцией интерфейса и меню ...
P.S. Что в Support'e, что в VIP'е не хочет комплилиться ни меню, ни диалоги - вылетает ...кто мож подскажет - что за ботва ?
Питаю патологические отвращение и ненависть в особо тяжелой и крайне запущенной формах к семейству программ Microsoft Business Solution !
Восславим господа Кришну за то, что у нас есть ГАЛАКТИКА !
Восславим господа Кришну за то, что у нас есть ГАЛАКТИКА !
Re: Создание контексного меню
11 это вроде как cmcancel...
в випе была заморочка, что если в одном файле собрано все - код на випе, описание меню, статусы и т.д., то он падал...надо все по отдельным файлам раскладывать...может в этом дело?
в випе была заморочка, что если в одном файле собрано все - код на випе, описание меню, статусы и т.д., то он падал...надо все по отдельным файлам раскладывать...может в этом дело?
-
- Местный житель
- Сообщения: 2896
- Зарегистрирован: 24 июн 2005, 12:12
- Откуда: Иркутская область
Re: Создание контексного меню
Не могу создать меню на горячую клавишу F2. Вернее меню создается, мышкой вызвать можно, а вот сама горячая клавиша не работает.
Что надо указать? Какой статус интерфейсу?
Что надо указать? Какой статус интерфейсу?
-
- Местный житель
- Сообщения: 1844
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
- Контактная информация:
Re: Создание контексного меню
Насколько помню , там нужно чтобы в указанном статус-лайне эта команда была описана с соответствующей клавишей.
Ну т.е., указали sci1Esc в строке меню своем, если там(в ст. лайне этом) нет пары команда+клавиша таких то не будет работать горячая клавиша.
Ну т.е., указали sci1Esc в строке меню своем, если там(в ст. лайне этом) нет пары команда+клавиша таких то не будет работать горячая клавиша.
-
- Абориген
- Сообщения: 943
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: External Developer
- Контактная информация:
Re: Создание контексного меню
Как уже было выше сказано - поддержка функциональных клавиш тем или иным интерфейсом определяется используемым этим интерфейсом статус-лайном.
На самом деле, стандартных статус-лайнов, поддерживающих обработку F2 не так уж и много, и в основном она связана с событием cmDefault. Наиболее задействована данная кнопа в Кадрах, там у нее несколько значений.
На всякий случай привожу полный перечень стандартных статус-лайнов Галактики, которые поддерживают обработку F2 ну и соответственно - событие, на нее завязанное
// Общие статусы
// Статусы в аналитических интерфейсах
// Статусы экспорта\импорта
// Статусы непонятного назначения
// Статусы Управления персоналом
// Статусы ЗП
//Статусы для выбора с пометкой
// ТЭП и ТПП
// VDE
Ну и естественно, сами константы должны быть определены:
Стандартные коды констант событий описаны в соответствующих *.CCM. Если их нет, привожу их определения (в проекте засунуть в блок констант).
На самом деле, стандартных статус-лайнов, поддерживающих обработку F2 не так уж и много, и в основном она связана с событием cmDefault. Наиболее задействована данная кнопа в Кадрах, там у нее несколько значений.
На всякий случай привожу полный перечень стандартных статус-лайнов Галактики, которые поддерживают обработку F2 ну и соответственно - событие, на нее завязанное
// Общие статусы
Код: Выделить всё
(sci1478Esc..sci1478Esc), F2 = cmDefault
(sci1478EscIns..sci1478EscIns), F2 = cmDefault
(sci1478EscWithFile..sci1478EscWithFile), F2 = cmDefault
Код: Выделить всё
(scPickAn..scPickAn), F2 = cmDefault
(scPickAn1..scPickAn1), F2 = cmDefault
(scintD..scintD), F2 = cmF2KEY
(scPickT..scPickT), F2 = cmDefault
(scPickP..scPickP), F2 = cmDefault
(scPASS..scPASS), F2 = cmDefault
(scBut..scBut), F2 = cmDefault
(scButK..scButK), F2 = cmDefault
(scEnterAn..scEnterAn), F2 = cmF2KEY
(scPickBr..scPickBr), F2 = cmDefault
(scButF..scButF), F2 = cmDefault
(scKlndbut..scKlndbut), F2 = cmDefault
(scPickAns..scPickAns), F2 = cmDefault
(sci147EnEscRates..sci147EnEscRates), F2 = cmDefault
(scAvtPick..scAvtPick), F2 = cmDefault
Код: Выделить всё
(scDocumDoc..scDocumDoc), F2 = cmZamena
(scDocumRazd..scDocumRazd), F2 = cmZamena
(sciIerarchi1..sciIerarchi1), F2 = cmShowRec
Код: Выделить всё
(scEuInterf1..scEuInterf1), F2 = cmSavePick // не стал бы юзать, кто-то под себя писал, возможно и не используется
(scEuInterf2..scEuInterf2), F2 = cmSavePick // не стал бы юзать, кто-то под себя писал, возможно и не используется
Код: Выделить всё
(scStaffHireLM..scStaffHireLM), F2 = cmStaffHireForm
(scStaffHireLMPick..scStaffHireLMPick), F2 = cmStaffHireForm
(scStaffCatComEd..scStaffCatComEd), F2 = cmStaffToArc
(scStaffCatComEdPick..scStaffCatComEdPick), F2 = cmStaffToArc
(scStaffStruct..scStaffStruct), F2 = cmStaffAddFtr
(scStaffStructNoCopy..scStaffStructNoCopy), F2 = cmStaffAddFtr
(scStaffStructPick..scStaffStructPick), F2 = cmStaffAddFtr
(scStaffStructPickDep..scStaffStructPickDep), F2 = cmStaffAddFtr
(scStaffStructRaise..scStaffStructRaise), F2 = cmStaffAddFtr
(scStaffVacancy..scStaffVacancy), F2 = cmStaffAddFtr
(scStaffMoveVacancy..scStaffMoveVacancy), F2 = cmStaffMoveAppoint
(scStaffMoveVacancyPick..scStaffMoveVacancyPick), F2 = cmStaffMoveAppoint
(scStaffPersonVacancy..scStaffPersonVacancy), F2 = cmStaffAddFtr
(scStaff1478EscIns..scStaff1478EscIns), F2 = cmDefault
(scStaffReceptionT2PasspNat..scStaffReceptionT2PasspNat), F2 = cmStaffPasspForm
(scStaffRecepT2Hire..scStaffRecepT2Hire), F2 = cmStaffHireForm
(scStaffRecepT2HirePick..scStaffRecepT2HirePick), F2 = cmStaffHireForm
Код: Выделить всё
(scStaffPass..scStaffPass), F2 = cmDefault
(scStaffPick..scStaffPick), F2 = cmDefault
(scStaffBut..scStaffBut), F2 = cmDefault
Код: Выделить всё
(sci1InsPMEsc..sci1InsPMEsc), F2 = cmDefault
Код: Выделить всё
(scTpickan..scTpickan), F2 = cmDefault
(scTbut..scTbut), F2 = cmDefault
(sciTPP13478Esc..sciTPP13478Esc), F2 = cmDefault
(sciTPP1478CPEsc..sciTPP1478CPEsc), F2 = cmDefault
(sciTPP13478CPEsc..sciTPP13478CPEsc), F2 = cmDefault
Код: Выделить всё
(sci1478EscVDE..sci1478EscVDE), F2 = cmDefault
Стандартные коды констант событий описаны в соответствующих *.CCM. Если их нет, привожу их определения (в проекте засунуть в блок констант).
Код: Выделить всё
cmDefault - определение не требуется, зашито на уровне ядра
cmF2KEY = 12124;
cmZamena = 3025;
cmShowRec = 7039;
cmSavePick = 12155;
cmStaffHireForm = 9044;
cmStaffToArc = 9116;
cmStaffAddFtr = 9072;
cmStaffMoveAppoint = 9079;
cmStaffPasspForm = 9112;
-
- Местный житель
- Сообщения: 2896
- Зарегистрирован: 24 июн 2005, 12:12
- Откуда: Иркутская область
Re: Создание контексного меню
Спасибо...погляжу завтра.
Я правильно понимаю - нет статуслайна - фиг Вам а не горячая клавиша? Или допустим я хочу создать свой набор горячих клавиш - не судьба?
Я правильно понимаю - нет статуслайна - фиг Вам а не горячая клавиша? Или допустим я хочу создать свой набор горячих клавиш - не судьба?
-
- Абориген
- Сообщения: 943
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: External Developer
- Контактная информация:
Re: Создание контексного меню
Ну почему же... можно. Только нафига? Имеющихся стандартных - вполне достаточно. http://www.tyumbit.ru/gal_forum/viewtop ... +sci#p2002 тебе в помощь для изучения.
-
- Местный житель
- Сообщения: 2896
- Зарегистрирован: 24 июн 2005, 12:12
- Откуда: Иркутская область
Re: Создание контексного меню
Да читал я это всё Вот к примеру я хочу три своих горячих клавиши, Alt+z Alt+x Alt+c - как мне подобрать нужное мне контекст меню?
Плюс к этому хочу чтобы браузер работал по ф7 ф8 ф4 ... тупо листаешь и ищешь? Согласитесь, фигня какая то получается, неужели нельзя было проще способ описания хоткеев сделать?
Плюс к этому хочу чтобы браузер работал по ф7 ф8 ф4 ... тупо листаешь и ищешь? Согласитесь, фигня какая то получается, неужели нельзя было проще способ описания хоткеев сделать?
-
- Абориген
- Сообщения: 943
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: External Developer
- Контактная информация:
Re: Создание контексного меню
Ну что я могу сказать на это... Хотеть - не вредно. Вредно - не хотеть. Есть стандарты разработки интерфейсов, в т.ч. и касающиеся статус-лайнов. Он не на пустом месте писаны. Не нравится вам стандартный набор - пишите свой. В отдельном файле. Подключайте в проект. Компилируйте. Пользуйтесь.
По мне так лучше из готовых кирпичиков пристрой к дому строить (из таких же, как и дом построен), чем открывать производство кирпичей на дому из песка, воды, глины, соды и чего-то там еще, и все для того, чтобы пару кубов кирпича заюзать.
По мне так лучше из готовых кирпичиков пристрой к дому строить (из таких же, как и дом построен), чем открывать производство кирпичей на дому из песка, воды, глины, соды и чего-то там еще, и все для того, чтобы пару кубов кирпича заюзать.
-
- Местный житель
- Сообщения: 2896
- Зарегистрирован: 24 июн 2005, 12:12
- Откуда: Иркутская область
Re: Создание контексного меню
ясно займёмся поиском подходящего sci