Page 32 of 32
Re: Toolbar plugin
Posted: Fri Jan 09, 2026 8:03 am
by dothen
ProfessorSeleznyov wrote: ↑Sat Jan 03, 2026 2:35 pm
Есть пункты меню, отображающие 3-х строчную панель инструментов. Вкл/выкл.
"Главная" Call("ToolBar::Main", 1, "1(-1),2(-2),3(-2)")
"Редактирование" Call("ToolBar::Main", 1, "1(-2),2(-1),3(-2)")
"Плагины" Call("ToolBar::Main", 1, "1(-2),2(-2),3(-1)")
Возможно ли прикрутить галочку отмеченного пункта?
ToolBarRows.js
Скрипт добавляет галочки и может скрывать/показывать группы кнопок.
Re: Toolbar plugin
Posted: Sat Jan 10, 2026 5:43 pm
by ProfessorSeleznyov
dothen wrote: ↑Fri Jan 09, 2026 8:03 am
ToolBarRows.js
Скрипт добавляет галочки и может скрывать/показывать группы кнопок.
Преогромно благодарен! Отличный скрипт!
Re: Toolbar plugin
Posted: Sat Jan 10, 2026 6:03 pm
by ProfessorSeleznyov
Команда 4101 "Создать новое окно редактирования" в режиме MDI-PMDI, при включенной опции "Не открывать программу дважды" не активна. Это логично.
Возможно-ли отслеживать зависимость от состояния других команд (скриптов), чтобы настроить видимость целевой команды?
На этом примере - скрыть в меню или панели инструментов пункт "Создать новое окно редактирования", при включенной опции "Не открывать программу дважды".
Может там использовать переменные, указанные в описании ToolBar plugin?
Re: Toolbar plugin
Posted: Fri Jan 16, 2026 1:10 pm
by yozhic
ProfessorSeleznyov wrote: ↑Sat Jan 10, 2026 6:03 pm
скрыть в меню или панели инструментов пункт "Создать новое окно редактирования", при включенной опции "Не открывать программу дважды".
Вроде так:
Code: Select all
SET(64, If(`SendMain(1222 /*AKD_GETMAININFO*/, 152 /*MI_SINGLEOPENFILE*/, 0) == 0`))
"Создать новое окно редактирования" Command(4101)
UNSET(64)
Другие значения для SendMain можно посмотреть в исходниках, в AkelDLL.h.
Re: Toolbar plugin
Posted: Thu Mar 26, 2026 4:51 pm
by ProfessorSeleznyov
Тут моих знаний не хватает. Нужно сделать неактивным (серым) пункт меню и значок кнопки.
Должно быть что-то типа:
Code: Select all
SET(64, If(`SendMain(1222 /*AKD_GETMAININFO*/, 153 /*MI_SINGLEOPENPROGRAM*/, 0) == 0`, 0x2, 0x0))
"Новое окно (x64)"Exec('%a\AkelPad64.exe') Icon("%a\AkelFiles\Icons\icons.icl", 245)
UNSET(64)
Но это не делает серым пункт меню и кнопку, при включенном режиме MI_SINGLEOPENPROGRAM
Что я делаю не так?
Re: Toolbar plugin
Posted: Thu Mar 26, 2026 8:34 pm
by yozhic
Code: Select all
SET(128, If(`SendMain(1222 /*AKD_GETMAININFO*/, 153 /*MI_SINGLEOPENPROGRAM*/, 0) == 0`, 0x0, 0x2))
"Новое окно (x64)" Exec('%a\AkelPad64.exe') Icon("%a\AkelFiles\Icons\icons.icl", 245)
UNSET(128)
Вместо SET(64) надо SET(128).
Синтаксис: "SET(128, If("выражение"[, ЕслиИстина, ЕслиЛожь]))". У нас 0x2 — это серый пункт, а 0х0 — обычный. Если в выражении "== 0", то значит пункт отключен — пишем 0x0, 0x2. А если бы было в выражении "== 1", то написали бы наоборот — 0x2, 0x0.
Re: Toolbar plugin
Posted: Fri Mar 27, 2026 7:47 pm
by ProfessorSeleznyov

Отлично! Работает.
Re: Toolbar plugin
Posted: Thu Apr 02, 2026 8:37 am
by ProfessorSeleznyov
AkelDLL.h - это мне сложно даётся.
Какое "ВЫРАЖЕНИЕ" нужно вписать в "SET(128, If("выражение"[, ЕслиИстина, ЕслиЛожь]))"?
Необходимо сделать неактивной строку меню/кнопку панели инструментов, при различных выражениях, если:
- открыта/создана единственная вкладка, других вкладок нет. Или нет открытых вкладок совсем.
Re: Toolbar plugin
Posted: Wed Apr 22, 2026 6:47 pm
by yozhic
ProfessorSeleznyov
Кнопка (или строка) About неактивна, если открыта/создана единственная вкладка, других вкладок нет:
Code: Select all
SET(128, If(`SendMain(1291 /*AKD_FRAMESTATS*/, 0 /*FWS_COUNTALL*/, 0) == 1`, 0x2, 0x0))
"About" Command(4351) Icon(38)
UNSET(128)
Кнопка (или строка) About неактивна, если нет открытых вкладок совсем:
Code: Select all
SET(128, If(`SendMain(1291 /*AKD_FRAMESTATS*/, 0 /*FWS_COUNTALL*/, 0) == 0`, 0x2, 0x0))
"About" Command(4351) Icon(38)
UNSET(128)