AIMP Forum

AIMP for Windows => Skin Editor, Skin Engine => Вопросы / Questions => Topic started by: ELECTRON!CK on November 04, 2021, 11:54:20

Title: Включение/отключение биндинга кнопкой
Post by: ELECTRON!CK on November 04, 2021, 11:54:20
Наверно глупый вопрос, но все же есть ли такая возможность или это в принципе невозможно или не имеет смысла? Включение/отключение биндинга с между скриптом и LogicalOperatorCommutator(любым провайдером) с помощью кнопки-переключателя через скрипт ::).
piccy.info СПАМ[/color]/view3/15133594/c2c3a312b2e6aaa7c1e322c184c7b7e6/](http://i.[color=#ff11ff]piccy.info СПАМ[/color]/i9/9d7a545db7a1da1514cd73872868da01/1636016004/13438/1445781/Snymok_ekrana_2021_11_04_124158_500.jpg) (http://[color=#ff11ff)piccy.info СПАМ[/color]/a3c/2021-11-04-08-53/i9-15133594/461x361-r](http://i.[color=#ff11ff]piccy.info СПАМ[/color]/a3/2021-11-04-08-53/i9-15133594/461x361-r/i.gif) (http://i.[color=#ff11ff)
Title: Re: Включение/отключение биндинга кнопкой
Post by: Kibermanick on November 04, 2021, 12:41:07
Можно. В справке вроде есть пример подключение провайдера скриптом, можно сделать скрип переназначения по счетчику.  Но это не точно.
Title: Re: Включение/отключение биндинга кнопкой
Post by: Black_AVP on November 04, 2021, 12:43:45
Всё верно, см. справка, раздел "Методы TASEBindings".
В некоторых случаях можно скриптом изменять выражения в связях или в тех же коммутаторах.
Title: Re: Включение/отключение биндинга кнопкой
Post by: ELECTRON!CK on November 04, 2021, 12:51:23
Спасибо за инфу, а можно какой-нибудь пример чтоб от него отталкиваться :-\
Title: Re: Включение/отключение биндинга кнопкой
Post by: Kibermanick on November 05, 2021, 13:43:59
Обрисуй ситуацию более конкретно, что бы было от чего исходить. Я попробую, может что-то получиться.
Title: Re: Включение/отключение биндинга кнопкой
Post by: ELECTRON!CK on November 05, 2021, 14:35:49
Обрисуй ситуацию более конкретно, что бы было от чего исходить. Я попробую, может что-то получиться.
Кнопка переключатель для вкл/откл, системной смены ночного режима
piccy.info СПАМ[/color]/view3/15134839/6a8aa962ed300fac633251bc2a7964b2/](http://i.[color=#ff11ff]piccy.info СПАМ[/color]/i9/b3349ff88593de65dc99fa030a8720d4/1636111934/17979/1445781/Snymok_ekrana_2021_11_05_153141.png) (http://[color=#ff11ff)piccy.info СПАМ[/color]/a3c/2021-11-05-11-32/i9-15134839/698x547-r](http://i.[color=#ff11ff]piccy.info СПАМ[/color]/a3/2021-11-05-11-32/i9-15134839/698x547-r/i.gif) (http://i.[color=#ff11ff)
Title: Re: Включение/отключение биндинга кнопкой
Post by: Black_AVP on November 05, 2021, 15:06:27
В таком случае, не проще ли поставить между кнопкой и провайдером коммутатор или мультиплексор.
Можно будет выбирать из трёх режимов: авто, дневной, ночной, и никаких скриптов не надо.
Title: Re: Включение/отключение биндинга кнопкой
Post by: Kibermanick on November 05, 2021, 15:08:49
Блин, в справке не хватает примеров.

как мне это внедрить в скрипт?

Code: [Select]

function <TASEBindings>.LinkAdd(const PinName: string): TASEBindingLink

Title: Re: Включение/отключение биндинга кнопкой
Post by: ELECTRON!CK on November 05, 2021, 15:33:03
В таком случае, не проще ли поставить между кнопкой и провайдером коммутатор или мультиплексор.
Можно будет выбирать из трёх режимов: авто, дневной, ночной, и никаких скриптов не надо.
Мне нужна кнопка именно которая только вкл/откл ночной режим, а не перебирает все режимы авто, дневной, ночной, и т.д. у меня три темы, возможно и четвертая будет.
Может просто какое условие прописать в связи?
Title: Re: Включение/отключение биндинга кнопкой
Post by: ELECTRON!CK on November 05, 2021, 15:35:25
Блин, в справке не хватает примеров.

как мне это внедрить в скрипт?

Code: [Select]

function <TASEBindings>.LinkAdd(const PinName: string): TASEBindingLink

я о том же практического примера нет
Title: Re: Включение/отключение биндинга кнопкой
Post by: Artem on November 05, 2021, 18:32:01
Посмотрите "Пример: несколько действий одной кнопкой", там используется.
А вообще в справке есть поиск ;-)
Title: Re: Включение/отключение биндинга кнопкой
Post by: Black_AVP on November 05, 2021, 19:04:35
Вот такая схема:

(https://www.aimp.ru/forum/index.php?action=dlattach;topic=67914.0;attach=64834)

Theme_Counter - скрипт, переключающий темы, в коммутаторе надо прописать выражение:
If(Value2 = 0, Value1, Value2 + 1).
Таким образом на Theme_Counter будут поступать значения:
0/1 - если включён/отключён ночной режим,
2,3,4... и т. д. для кастомных тем.
Соответственно и модули счётчиков надо правильно задать.
Title: Re: Включение/отключение биндинга кнопкой
Post by: ELECTRON!CK on November 05, 2021, 19:53:34
Вот такая схема:

(https://www.aimp.ru/forum/index.php?action=dlattach;topic=67914.0;attach=64834)

Theme_Counter - скрипт, переключающий темы, в коммутаторе надо прописать выражение:
If(Value2 = 0, Value1, Value2 + 1).
Таким образом на Theme_Counter будут поступать значения:
0/1 - если включён/отключён ночной режим,
2,3,4... и т. д. для кастомных тем.
Соответственно и модули счётчиков надо правильно задать.
Спасибо почти то что нужно, но есть одно "но", темы перебираются +1 при нажатии кнопки триггера, а нужно чтобы их состояние было фиксированным как в теме Charm.
Title: Re: Включение/отключение биндинга кнопкой
Post by: Black_AVP on November 06, 2021, 14:01:28
Что означает "фиксированным"?
Выбранная тема сохранится и в следующей сессии, поскольку значения счётчиков сохраняются в конфиге.
Title: Re: Включение/отключение биндинга кнопкой
Post by: ELECTRON!CK on November 06, 2021, 16:05:01
Что означает "фиксированным"?
Выбранная тема сохранится и в следующей сессии, поскольку значения счётчиков сохраняются в конфиге.
на гифке понятнее, кнопка-переключатель переключает на вечернюю тему хотя я ее об этом не просил https://imgur.com/a/zc0icbG
Title: Re: Включение/отключение биндинга кнопкой
Post by: Black_AVP on November 06, 2021, 16:32:17
Стало быть значение AIMPMainForm.NightMode = true.
Чтобы не перебирать все значения одной кнопкой можно к тому же счётчику подключить несколько кнопок (по числу тем), прописав в связах соответствующие циферки 0, 1,2,3...
Title: Re: Включение/отключение биндинга кнопкой
Post by: ELECTRON!CK on November 06, 2021, 16:58:40
Стало быть значение AIMPMainForm.NightMode = true.
Чтобы не перебирать все значения одной кнопкой можно к тому же счётчику подключить несколько кнопок (по числу тем), прописав в связах соответствующие циферки 0, 1,2,3...
имеете ввиду привязать кнопки выбора конкретных тем  на тот же LogicalOperatorCounter, при этом связи с LogicalOperatorCommutator менять не нужно If(Value2 = 0, Value1, Value2 + 1)?
Title: Re: Включение/отключение биндинга кнопкой
Post by: Black_AVP on November 06, 2021, 19:29:39
имеете ввиду привязать кнопки выбора конкретных тем  на тот же LogicalOperatorCounter, при этом связи с LogicalOperatorCommutator менять не нужно If(Value2 = 0, Value1, Value2 + 1)?
Да. Если в связи кнопки со счётчиком прописать конкретное число, то оно и запишется в счётчик.
Title: Re: Включение/отключение биндинга кнопкой
Post by: ELECTRON!CK on November 06, 2021, 20:01:15
Да. Если в связи кнопки со счётчиком прописать конкретное число, то оно и запишется в счётчик.
не работает, вечерняя тема теперь не включается https://imgur.com/a/Ty1yig9
Title: Re: Включение/отключение биндинга кнопкой
Post by: Black_AVP on November 06, 2021, 20:08:39
Откуда ж мне знать, что вы там делаете, что в связях прописано, я не телепат. Сделали бы упрощенный пример, а то так можно долго и безрезультатно беседовать.
Вообще автоматическая смена тем будет работать только в Win10 и, насколько я правильно понял Артёма, не в зависимости от времени суток, а от темы самих виндов.
Title: Re: Включение/отключение биндинга кнопкой
Post by: ELECTRON!CK on November 06, 2021, 20:16:28
Откуда ж мне знать, что вы там делаете, что в связях прописано, я не телепат. Сделали бы упрощенный пример, а то так можно долго и безрезультатно беседовать.
Вообще автоматическая смена тем будет работать только в Win10 и, насколько я правильно понял Артёма, не в зависимости от времени суток, а от темы самих виндов.
могу проект скинуть если интересно разобраться в ситуации
Title: Re: Включение/отключение биндинга кнопкой
Post by: Black_AVP on November 06, 2021, 21:25:23
могу проект скинуть если интересно разобраться в ситуации
Разбираться в чужих проектах у меня нет времени, равно, как и в своих древних и давно заброшенных, проще сделать свой пример, тем более, что всё тут предельно просто и прозрачно.
В примере изменение цвета панели имитирует смену темы. В авторежиме у меня она всегда чёрная, поскольку Win7.
Title: Re: Включение/отключение биндинга кнопкой
Post by: ELECTRON!CK on November 06, 2021, 23:46:39
Разбираться в чужих проектах у меня нет времени, равно, как и в своих древних и давно заброшенных, проще сделать свой пример, тем более, что всё тут предельно просто и прозрачно.
В примере изменение цвета панели имитирует смену темы. В авторежиме у меня она всегда чёрная, поскольку Win7.
Спасибо все получилось!, проблема была не связях, нужно было создать новые ресурсы в репозитории для автотемы как стандартной обложке и добавить в скрипт, странно что раньше не дошло до меня :-\. В стандартном скине сложно было разобраться, там куча всего намешано в одном скрипте, а ваш пример все разрулил.