Добавил функцию Libraryhelpfile в которой указал имя файла справки chm, файл справки лежит рядом с rtw, но при нажатии на F1 вызывается справка Компаса. Куда и в каком виде в chm добавить id команд модуля?
ksOpenHelpFileW
Цитата: Sabahs от 21.06.18, 09:41:17
ksOpenHelpFileW
Непонятно как этим пользоваться, эта функция насколько я понимаю просто позволяет открыть файл справки. А я хочу сделать чтобы моя справка вызывалась по нажатию на кнопку F1 в зависимости от контекста.
Так, приходит событие от кнопки, Вы вызываете нужный раздел, подписываетесь на события IKompasObjectNotify.
Я у себя, вызываю по событию нажатия кнопки.
Я хочу сделать как написано в SDK, без подписывания на события нажатия кнопок, так можно сделать?
Правда, так удобнее читать?
Так и прописывайте в файле справки нужные идентификаторы, мне лично удобнее работать с событиями.
Вопрос изначально и был в том как прописать нужные идентификаторы в файле справки. И почему вообще не открывается и не выдает сообщение о том что не найден раздел в моей справке, а вместо этого открывается стандартная справка Компаса.
А по поводу удобства чтения, то извините нет интернета на компьютере где открыта справка и нет возможности подключить к нему телефон
У меня данный способ из SDK, тоже не работает, возможно ошибка, возможно нужно ресурсах прописывать, да и функцией ksOpenHelpFileW удобнее, задал в не какой раздел показать.
В файл справки, судя по описанию передаётся идентификатор выполняемой команды, там должен быть соответствующий раздел с таким ID, у меня по факту команда не выполняется, поэтому тоже может не работать.
У меня есть несколько команд у библиотеки, я хочу сделать чтобы при выборе команды (один клик мышкой, чтобы не выполнить команду, а просто выбрать) при нажатии на F1 вызывался нужный раздел из справки. Где мне подписываться на событие нажатия кнопки 'F1' и вызывать ksOpenHelpFile? И это же сломает вызов справки Компаса...
Подписка выполняется в функции LibInterfaceNotifyEntry, чтобы не ломать справку Компаса, нужно следить при обработки события нажатия и отпускания кнопки, что активно, Компас или команда библиотеки, код кнопки передаётся в событие, а там решаете сами, передавать код Компасу или сказать, что ничего не нажимали.
В принципе подписываться не обязательно, Нужно обрабатывать в своей программе нажатие кнопки Справка (F1) на спецпанели. Если интересует конкретно текст вызова, могу вечером прикрепить.
Пока, топик стартер не сказал, что у него есть спец панель, да и вообще о библиотеке ноль информации.
PS. Чтобы обработать F1, в любом случае нужно обработать событие.
Цитата: PS от 21.06.18, 12:12:09
В принципе подписываться не обязательно, Нужно обрабатывать в своей программе нажатие кнопки Справка (F1) на спецпанели. Если интересует конкретно текст вызова, могу вечером прикрепить.
Интересует. О какой спецпанели идёт речь? Модуль подключаю выбираю режим открытия "Панель" вы об этом? И у меня файл справки в формате chm, ksOpenHelpFile такой может открыть или только hlp?
Цитата: Sabahs от 21.06.18, 12:25:31
PS. Чтобы обработать F1, в любом случае нужно обработать событие.
Да событие нужно, см. 158 справка по API. Будет обработано и нажатие F1.
На 159 обработка вызова справки в ButtonClick и непосредственно вызов справки.
Спецпанель я так понял это панель свойств и ButtonClick это нажатие кнопки на панели свойств, мне не это нужно...
Для вызова справки по F1 на панелях библиотеки нужно в справку добавить разделы с номером команды
При работе библиотечных процессов библиотека может выдать сама нужную справку
Цитата: bbb от 21.06.18, 17:03:30
Спецпанель я так понял это панель свойств и ButtonClick это нажатие кнопки на панели свойств, мне не это нужно...
Вам нужно:
- [ksKompasObjectNotify, IKompasObjectNotify].KeyDown - клавиша нажата и удерживается нажатой;
- [ksKompasObjectNotify, IKompasObjectNotify].KeyPress - одиночное нажатие клавиши;
- [ksKompasObjectNotify, IKompasObjectNotify].KeyUp - клавиша отпущена.
Что использовать, решать Вам.