0 Members and 1 Guest are viewing this topic.
Пример использования новых элементов AIMP5 и немного "хитрого" биндинга.
Этот эффект в своих скина я назвал "Радугой", использовался для подсветки индикаторов в УМ. В данном примере панель меняет циклически свой цвет, проходя все оттенки цветового круга.Code: [Select]procedure Execute(var State: Integer);begin FindObject('Panel').Set('Color', HSLToColor(State / 360, 1, 0.5))end;Таймер с периодом 100 мс подключен к скриптовому счётчику с модулем 360. Весь цикл при этом занимает 36 с. Кому-то, возможно, это покажется слишком долго, тогда можно уменьшить модуль счёткика.В этом примере модуль = 36Code: [Select]procedure Execute(var State: Integer);const Step = 10; begin FindObject('Panel').Set('Color', HSLToColor(State * Step / 360, 1, 0.5))end;
procedure Execute(var State: Integer);begin FindObject('Panel').Set('Color', HSLToColor(State / 360, 1, 0.5))end;
procedure Execute(var State: Integer);const Step = 10; begin FindObject('Panel').Set('Color', HSLToColor(State * Step / 360, 1, 0.5))end;
procedure Execute(var State: Integer);var Vol, Bal: TComponent; VL, VR: Integer; begin Vol:= FindObject('prvVolume'); Bal:= FindObject('prvBalance'); VL:= FindObject('VolumeLeftCounter').Get('Position'); VR:= FindObject('VolumeRightCounter').Get('Position'); Bal.Set('Position', Round(VR-VL)/100); If VL > VR then begin Vol.Set('Position',(VL/100)) end else begin Vol.Set('Position',(VR/100)) endend;
Давно мозг сверлила мысль: а как бы разделить регулировку громкости на два регулятора ...
... но вот как организовать "обратную связь", чтобы положение ползунков соответствовало состоянию prvVolume и prvBalance, регулируемыми штатными средствами?
Молодец! +1Завести связи с prvVolume.Progress и prvBalance.Progress на тот же коммутатор, только надо модуль срипт. счётчика увеличить воизбежание недоразумений при суммировании.Это просто заблокирует действия пользователя при попытках изменить громкость и баланс. Скрипт немного причесал.Собственно, самих регуляторов громкости и баланса в скине может и не быть, в примере оставлены для наглядности.
Не совсем понял. Общий скролл громкости от мыши тоже блокирован, на слайдерах Л и П он работает.
Вариант с блокировкой неприемлем, поскольку, как я думаю, громкость чаще всего регулируют именно скроллом.
А, по-моему, для реального аппарата, где два раздельных регулятора, самое то. Для скинов Hi-Fi тематики это вполне приемлимо, зачем тогда изображать эти регуляторы, если их никто не будет таскать мышкой.
Если ты хочешь скроллом регулировать общую громкость, то надо ещё обрабатывать и такие ситуации, когда в одном из каналов уровень упрётся в максимум, а во втором будет меньше, баланс тоже надо соблюдать.