Страница 1 из 1

Как подобрать событие на нажатие PageUp, PageDown?

Добавлено: 23 окт 2012, 15:38
zna
День добрый, коллеги. Такая тема- "допиливаю" интерфейс ДО на снабжение L_BASEDOC::VSCHETB. В целом получилось, кроме одного: не могу сделать обработку нажатий PageUp, PageDown во вложенном интерфейсе WVSCHET. Структура кода такая:

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

#Component "L_BASEDOC"
#include Galnet.inc
end;
alter interface VSCHETb;
create view
  ...
HandleEvent  //События главного окна
cmInit:
{
 if inherited::handleEvent(cmInit) = heOk
  {
...   //Здесь создаются новые объекты в browse нормально
  }   //if
}
  end;  //handleevent

window WVSCHET;
 ...
HandleEvent
cmInit:
{
 inherited::handleEvent(cmInit);
  {
   ...//Здесь создаются новые объекты в window нормально
}
end;  //HandleEvent
end;  //window WVSCHET;

TableEvent Table BaseDoc;                       //Табличные события главного окна
cmDoGetNext:
 {
... //Здесь не могу подобрать корректной обработки
   
 }
end;       //Tableevent
end.       //Interface
Изображение
Что опробовано: подключал секцию always и с помощью curCommand пытался поймать нужное событие. Очень много событий, утонул в них. Подобрал, что на эти кнопки генерится cmDoGetNext, cmDoGetPrev. Беда в том, что эти же события генерятся тучей при инициализации интерфейса WVSCHET, и отделить их от нажатия на кнопку не получилось.
Собственно, вопрос: как переопределить события на кнопки PageUp, PageDown?? К доке не отправляйте- копал, но не дошло..

Re: Как подобрать событие на нажатие PageUp, PageDown?

Добавлено: 23 окт 2012, 16:31
Screw
А что ззначит "...добавленные объекты не реагируют на нажатие..."? Что за объекты? Почему они вообще должны на что-то реагировать?

Re: Как подобрать событие на нажатие PageUp, PageDown?

Добавлено: 23 окт 2012, 16:55
zna
Это мной добавленные в интерфейс новые поля, которые не менялись при навигации по таблице BaseDoc с помощью указанных клавиш. В этом и была проблема.
Вопрос решился подсказкой Dim_Sol: добавил событие cmPositionChanged и всё получилось! :-)

Re: Как подобрать событие на нажатие PageUp, PageDown?

Добавлено: 23 окт 2012, 17:02
Screw
Так а что за поля-то такие особенные?

Re: Как подобрать событие на нажатие PageUp, PageDown?

Добавлено: 23 окт 2012, 17:09
zna
Поля, значение которых зависит от позиции BaseDoc.
Спасибо за внимание, тему можно закрыть.

Re: Как подобрать событие на нажатие PageUp, PageDown?

Добавлено: 24 окт 2012, 11:05
edward_K
В завершение - чтобы не мучиться с cmPosition... можно в create view добавить вывод полей через вызов функций
( field1 , field2
)
as select Func1(basedoc.nrec), Func2(basedoc.nrec) .....
Функции требуется дополнительно описать в начале фейса с атрибутом forward
Попутно это вам позволит добавлять поля не только на окно редактирования, но и в browse
по поводу событий - есть cmAlways - ловите там нужную команду.

Re: Как подобрать событие на нажатие PageUp, PageDown?

Добавлено: 24 окт 2012, 11:35
zna
Спасибо!