как сделать горячую клавишу

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

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

Ответить
Hmyrii
Постоянный гость
Сообщения: 62
Зарегистрирован: 07 июн 2006, 08:23

как сделать горячую клавишу

Сообщение Hmyrii »

есть такой код

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

sortLine statusLine
{
  (scSort..scSort)
    {
      'cmNextRec', cmNextRec, kbCtrlDown;
      'cmPrevRec', cmPrevRec, kbCtrlUp;
    }
}

interface test (,,scSort) doAccept;
  
  create view as select * from KatPodr;

  browse browse1 (,,scSort);
    fields
      KatPodr.Name 'Имя файла ': [30], protect;
  end;

  HandleEvent
    cmHotKeys:
    {
      PutHotCommand(RunMenu('mnuTest'));
    }
    cmNextRec:
    {
      message('cmNextRec');
    }
    cmPrevRec:
    {
      message('cmPrevRec');
    }
  end;
end.

mnuTest menu
{
  - 'cmNextRec', cmNextRec,,,,kbCtrlDown,;
  - 'cmPrevRec', cmPrevRec,,,,kbCtrlUp,;
}
все чудно работает, токо вот горячие клавиши не срабатывают
может кто нить мне объяснить что не так и где ошибка
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

а вы пощите по форму "statusLine". У меня так не получалось одновременно загрузить две статусстроки. В сапортовском "компиляторе фейсов" вы могете поднять свою и тыды ваши заработают. либо при компиляции в проекте указать #statusline "sortLine" в первой строке. Тогда во всей галке будет работать тока ваш фейс.
Screw
Слесарь-системщик
Сообщения: 304
Зарегистрирован: 29 мар 2005, 17:49
Откуда: р.Беларусь, Унитарное предприятие "ТОП СОФТ"
Контактная информация:

Сообщение Screw »

По-моему, некоторые комбинации клавиш перехватываются ядром Атлантиса, и использоваться в качестве горячих не могут. Так нельзя, например, "переопределить" нажатия клавиш управления курсором, PgUp, PgDn (отдельно и в комбинации с Ctrl) и т.д.

А в 5-м Атлантисе статус-строки, если не ошибаюсь, можно докомпилировать. Но сам не пробовал, не было нужды.
Виталий
Hmyrii
Постоянный гость
Сообщения: 62
Зарегистрирован: 07 июн 2006, 08:23

Сообщение Hmyrii »

ну вроде решилась проблемма
в StatLine.sc добавил свой статус
заинклудил этот файл в vip.prj
и вот тогда мой статус нормально работает
причем эти горячие клавиши работают, это есть ГУУД :)
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Сообщение Алексей »

Написал свой интерфейс, к нему локальное меню на нажатие кнопок Alt+B. В проекте #statusline "statgal" подключил и galnet.ccm galnet.csc

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

mnuLzakaz Menu
{
- 'Фильтр',cmAltB,'',,'Alt-B',kbAltB,sci1Esc;
}

Interface iface 'Лист заказов' (,,sci1378EnEsc);
...
cmHotKeys:
{
 PutHotCommand(RunMenu('mnuLzakaz '));
}
cmAltB:
{
 message('1');
}
...
end.

Меню вызывается, а вот при нажатии кнопок - тишина. Что я не так делаю?
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Сообщение Алексей »

Подскажите кто-нибудь... :)
KATZ
Местный житель
Сообщения: 473
Зарегистрирован: 29 мар 2005, 17:49

Сообщение KATZ »

Алексей
Константа cmAltB чему равна? В собственном меню любое число может быть, а чтобы команда с клавиатуры в контексте sci1378EnEsc срабатывала, нужно 4070 (версия 8.1).
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Сообщение Алексей »

KATZ спасибо, сработало.
Осталось понять логику - как отыскивать нужное тебе событие :)
Ответить