Кнопка "переключатель" на панели Компас

Автор once, 11.12.17, 20:31:33

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

once

Подскажите как сделать кнопку "переключатель" (при нажатии подсвечивается, при повторном нажатии подсветка выключается) в панели инструментов Компас при разработке прикладной библиотеки. В справке не нашел. Например, как здесь во вложении.


По минимуму, использовать функцию LibCommandState, в справке она есть.
+ Благодарностей: 1

once

В справке написано, что это "Получить состояние команды библиотеки"

function  LibCommandState(Command:Integer; var Enable:Integer; var Checked:Integer):Integer; stdcall; export;
Смотрите, как объявлены  переменные: Enable и Checked.

once

Сделал я как в справке, но функция не вызывается компасом или я вообще не догоняю, примера в справке тоже нет, только описание функции, а как это работает не понятно.

Команды должны быть определены в файле ресурсов, функция должна экспортироваться, чтобы Компас её видел.
Функция вызывается Компасом, при каждом цикле обработки сообщений.

once

И экспортной функцию тоже сделал, но так ни разу Компас и не вызвал ее  :(
ПС. делаю на шарпе

Я пишу на Delphi, у меня всё прекрасно работает.

once

Sabahs, а подскажи, пожалуйста, что значит "Команды должны быть определены в файле ресурсов"? Они должны быть как-то по-особому определены, чтобы им можно было менять состояние или как обычно?

#9
Откройте пример c:Program Files/ASCON/KOMPAS-3D v17/SDK/Samples/Pascal/Delphi/step2 и посмотрите файл ресурсов.
PS. Хотя судя по примерам из SDK, для C# использовать функцию LibCommandState не получится, хотя могу и ошибаться.