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

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

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

Ответить
zna
Местный житель
Сообщения: 552
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Челябинск
Контактная информация:

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

Сообщение 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?? К доке не отправляйте- копал, но не дошло..
Screw
Слесарь-системщик
Сообщения: 304
Зарегистрирован: 29 мар 2005, 17:49
Откуда: р.Беларусь, Унитарное предприятие "ТОП СОФТ"
Контактная информация:

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

Сообщение Screw »

А что ззначит "...добавленные объекты не реагируют на нажатие..."? Что за объекты? Почему они вообще должны на что-то реагировать?
Виталий
zna
Местный житель
Сообщения: 552
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Челябинск
Контактная информация:

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

Сообщение zna »

Это мной добавленные в интерфейс новые поля, которые не менялись при навигации по таблице BaseDoc с помощью указанных клавиш. В этом и была проблема.
Вопрос решился подсказкой Dim_Sol: добавил событие cmPositionChanged и всё получилось! :-)
Screw
Слесарь-системщик
Сообщения: 304
Зарегистрирован: 29 мар 2005, 17:49
Откуда: р.Беларусь, Унитарное предприятие "ТОП СОФТ"
Контактная информация:

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

Сообщение Screw »

Так а что за поля-то такие особенные?
Виталий
zna
Местный житель
Сообщения: 552
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Челябинск
Контактная информация:

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

Сообщение zna »

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

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

Сообщение edward_K »

В завершение - чтобы не мучиться с cmPosition... можно в create view добавить вывод полей через вызов функций
( field1 , field2
)
as select Func1(basedoc.nrec), Func2(basedoc.nrec) .....
Функции требуется дополнительно описать в начале фейса с атрибутом forward
Попутно это вам позволит добавлять поля не только на окно редактирования, но и в browse
по поводу событий - есть cmAlways - ловите там нужную команду.
zna
Местный житель
Сообщения: 552
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Челябинск
Контактная информация:

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

Сообщение zna »

Спасибо!
Ответить