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

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

Добавлено: 12 ноя 2007, 13:10
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,;
}
все чудно работает, токо вот горячие клавиши не срабатывают
может кто нить мне объяснить что не так и где ошибка

Добавлено: 12 ноя 2007, 14:35
edward_K
а вы пощите по форму "statusLine". У меня так не получалось одновременно загрузить две статусстроки. В сапортовском "компиляторе фейсов" вы могете поднять свою и тыды ваши заработают. либо при компиляции в проекте указать #statusline "sortLine" в первой строке. Тогда во всей галке будет работать тока ваш фейс.

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

А в 5-м Атлантисе статус-строки, если не ошибаюсь, можно докомпилировать. Но сам не пробовал, не было нужды.

Добавлено: 13 ноя 2007, 06:42
Hmyrii
ну вроде решилась проблемма
в StatLine.sc добавил свой статус
заинклудил этот файл в vip.prj
и вот тогда мой статус нормально работает
причем эти горячие клавиши работают, это есть ГУУД :)

Добавлено: 19 май 2008, 11:53
Алексей
Написал свой интерфейс, к нему локальное меню на нажатие кнопок 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.

Меню вызывается, а вот при нажатии кнопок - тишина. Что я не так делаю?

Добавлено: 26 май 2008, 11:12
Алексей
Подскажите кто-нибудь... :)

Добавлено: 26 май 2008, 12:42
KATZ
Алексей
Константа cmAltB чему равна? В собственном меню любое число может быть, а чтобы команда с клавиатуры в контексте sci1378EnEsc срабатывала, нужно 4070 (версия 8.1).

Добавлено: 26 май 2008, 13:23
Алексей
KATZ спасибо, сработало.
Осталось понять логику - как отыскивать нужное тебе событие :)