Генерация события при нажатии кнопки на клавиатуре
Добавлено: 24 окт 2005, 14:40
Добрый день!
Что-то я совсем запарился, не могу повешать событие на клавишу.
Смысл таков:
Есть интерфейс, отображающий группы документов (древовидный). Хочу по нажатию 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.
Что-то я совсем запарился, не могу повешать событие на клавишу.
Смысл таков:
Есть интерфейс, отображающий группы документов (древовидный). Хочу по нажатию 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.