Генерация события при нажатии кнопки на клавиатуре

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

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

Ответить
Alexx
Постоянный обитатель
Сообщения: 168
Зарегистрирован: 29 мар 2005, 17:49

Генерация события при нажатии кнопки на клавиатуре

Сообщение Alexx »

Добрый день!

Что-то я совсем запарился, не могу повешать событие на клавишу.
Смысл таков:
Есть интерфейс, отображающий группы документов (древовидный). Хочу по нажатию Ins выделить оперделенную позицию или ветку (не суть важна).
Что я сделал:
описал статус-контекст и переменные

//mystatus.rc
const
cmIns = 1111;
scMy = 2222;
end;
mystatusline statusline
{
(scMy..scMy)
{
'~Ins~ Пометить', cmIns, kbIns;
}
}
// end of mystatus.rc

Далее, в prj-файле
#include mystatus.rc
#make myinterface.vip

Потом в своем интерефейсе вешаю что-либо на событие cmIns, ничего не происходит, даже кнопки статус контекста не появляются, такое ощущение что фейс его не видит вообще.
Вот исходник самого фейса, для проверки работы события просто привесил на него мессадж:

interface myinterface 'Мой интерфейс' cyan, doaccept;

view
var
curowner: comp;
gr_nrec: comp;
gr_kod, gr_name: string;
as select * from groupsch, groupsch groupsch2
where ((curowner == groupsch.cnode and
groupsch.nrec == groupsch2.cnode))
order by groupsch.kod;

parameters
gr_nrec,
gr_kod,
gr_name;

tree b1
fields
groupsch.kod 'Код' ('Код',,scMy): [20], protect;
groupsch.name 'Наименование' ('Наименование',,scMy): [40], protect;
end;

handleevent
cmIns:
{
Message('cmIns', YesNo);
}

cmDefault:
{
gr_nrec := groupsch.nrec;
gr_kod := groupsch.kod;
gr_name := groupsch.name;
}
cmTreeNodeType:
{
if isvalidall(tngroupsch2) then
{
TreeSetNodeType(b1, if(TreeNodeIsOpen(b1), ntfopen, ntfclose));
}
else
{
TreeSetNodeType(b1, ntftext);
}
}
cmTreeTop: curowner := 0;
cmTreeDown: curowner:=groupsch.nrec;
cmTreeUp: curowner:=groupsch.cnode;
cmCancel: {};
cmDone: {};
end;

end.
Goblin
Местный житель
Сообщения: 474
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Сибирь-матушка
Контактная информация:

Сообщение Goblin »

Не увидится твой статус-лайн ... лучше пользуй какой-нить системный типа sci1InsPMAltB, его константа 7179
Питаю патологические отвращение и ненависть в особо тяжелой и крайне запущенной формах к семейству программ Microsoft Business Solution !
Восславим господа Кришну за то, что у нас есть ГАЛАКТИКА !
Sytin
Постоянный обитатель
Сообщения: 159
Зарегистрирован: 28 сен 2005, 19:48
Откуда: mos
Контактная информация:

Сообщение Sytin »

А можно конкретный пример как повесить событие на клавишу Ins?
san
Местный житель
Сообщения: 412
Зарегистрирован: 28 апр 2005, 11:34
Откуда: Галактика Млечный Путь

Сообщение san »

не получается добавить свой статус-лайн, или стандартный набор или свой набор. как и меню, не добавишь пункт в стандартное меню. закрытый объект.
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

добавить то получится тока вот нужно перекрыть statgal, в противном случае работать кнопки не будут, так что без атлантиса даже и не дергайтесь.
по поводу Ins
sci1378EnIns
событие
cmMarkUnMark
подробней ищите на этом форуме.
Sytin
Постоянный обитатель
Сообщения: 159
Зарегистрирован: 28 сен 2005, 19:48
Откуда: mos
Контактная информация:

Сообщение Sytin »

Все получилось.Спасибо
Ответить