AIMP Forum

AIMP for Windows => Предложения / Suggestions => Skin Editor, Skin Engine => Skin Engine => Topic started by: Kibermanick on June 06, 2017, 13:21:14

Title: [Есть решение] Несколько действий одной кнопкой
Post by: Kibermanick on June 06, 2017, 13:21:14
Предлагаю такой провайдер, который имеет один вход и пусть пять выходов(если не хватит можно прикрутить вход такого же провайдера к выходу первого). При получении значения на вход он отправляет это же значение на все выходы одновременно. К примеру, я уже несколько раз сталкивался с тем что, нужно сделать одну кнопку которая выполняла бы несколько действий одновременно.

Так же можно отправлять не только числовое значение а также например Action связь.

(http://storage3.static.itmages.ru/i/17/0606/h_1496745390_2099449_45f499f0ef.png)
Title: Re: Новый пользовательский провайдер
Post by: Soolo on June 06, 2017, 13:36:45
Это делается с помощью счётчика или скриптом

Счётчик меняет состояние, а другие элементы скина зависят от состояния счётчика

Либо универсальный вариант скрипта, который не имеет ограничений по количеству действий
Вот пример из "моего" скина (переключается контейнер и вызывается какой-либо Action):
Если не ошибаюсь пример даже есть в справке

procedure Execute(var State: Integer);
var
  BackgroundObject : TComponent; // Переменная типа "компонент" (контейнер)
begin
  BackgroundObject := FindObject('ContainerClient'); // (*1) Ищем многостраничную группу
  BackgroundObject.Set('PageIndex',0); // (*1) Переключаем контейнер многостраничной группы
  FindObject('acMainOpenPlaylist').Execute; // (*2) Ищем провайдер и вызываем его действие Action
  State := 0;
end;

И нет, я не программист, разобраться со скриптами не так и сложно

Можно пример, что именно в скине должна выполнять кнопка?
Title: Re: Новый пользовательский провайдер
Post by: Kibermanick on June 06, 2017, 13:48:00
Это делается с помощью счётчика или скриптом

Счётчик меняет состояние, а другие элементы скина зависят от состояния счётчика

Либо универсальный вариант скрипта, который не имеет ограничений по количеству действий
Вот пример из "моего" скина (переключается контейнер и вызывается какой-либо Action):

procedure Execute(var State: Integer);
var
  BackgroundObject : TComponent; // Переменная типа "компонент" (контейнер)
begin
  BackgroundObject := FindObject('ContainerClient'); // (*1) Ищем многостраничную группу
  BackgroundObject.Set('PageIndex',0); // (*1) Переключаем контейнер многостраничной группы
  FindObject('acMainOpenPlaylist').Execute; // (*2) Ищем провайдер и вызываем его действие Action
  State := 0;
end;

И нет, я не программист, разобраться со скриптами не так и сложно

Можно пример, что именно в скине должна выполнять кнопка?

Я ничего тут не понимаю, надо соблюдать весь синтаксис, и знать его еще. Что так сложно провайдер замутить? Это же куда проще чем сидеть и писать не пойми что, соединил две точки полоской и все.
Title: Re: Новый пользовательский провайдер
Post by: Soolo on June 06, 2017, 13:49:32
Я ничего тут не понимаю, надо соблюдать весь синтаксис, и знать его еще. Что так сложно провайдер замутить, это же куда проще чем сидеть и писать не пойми что, соединил две точки полоской и все.
Так что с примером кнопки?
Title: Re: Новый пользовательский провайдер
Post by: Kibermanick on June 06, 2017, 13:51:13
Счётчик меняет состояние, а другие элементы скина зависят от состояния счётчика

Не все можно так сделать, мы с тобой уже пробовали сделать кнопку, которая одновременно должна была менять значение счетчика и показать текущий трек в плейлисте.
Title: Re: Новый пользовательский провайдер
Post by: Kibermanick on June 06, 2017, 13:59:48
Не все можно так сделать, мы с тобой уже пробовали сделать кнопку, которая одновременно должна была менять значение счетчика и показать текущий трек в плейлисте.

Я нашел. Вы сделали эту кнопку и она работает, но я уже не помню почему она не подошла.

Но все ровно тебе пришлось помогать мне, а так я могу сам все делать.