0 Members and 1 Guest are viewing this topic.
%IFEqual(%Value1,1,1,%IFEqual(%Value1,2,2,%IFEqual(%Value1,3,3,%IFEqual(%Value1,4,4,%IFEqual(%Value1,5,5,%IFEqual(%Value1,6,6,%IFEqual(%Value1,7,7,%IFEqual(%Value1,8,8,%IFEqual(%Value1,9,9,%IFEqual(%Value1,10,9,%IFEqual(%Value1,11,8,%IFEqual(%Value1,12,7,%IFEqual(%Value1,13,6,%IFEqual(%Value1,14,5,%IFEqual(%Value1,15,4,%IFEqual(%Value1,16,3,%IFEqual(%Value1,17,2,%IFEqual(%Value1,18,1,0))))))))))))))))))
Сделал так, но связал с громкостью. поэтому сложно протестироватьTests - это сам счётчик, его связываем с тем откуда брать данные (в моём случае громкость)Tst - это десятичный преобразователь, его связываем с выводом (в моём случае это цифровое табло)
If(Value <= 50 OR Value = 100,Value,50- Value MOD 50)
Можно и проще В связи прописываем так, пример для громкости (100 значений, модуль 50)
Пытаюсь отловить окончание трека по такой схеме:Однако, оказывается, что значение "100" у половины треков не появляется.Пробовал с таким выражением:If(Value >= 99, CurrentValue + 1, CurrentValue)Но тогда в конце трека счётчик успевает сосчитать сразу несколько раз, причём всегда по-разному. То же самое происходит, если пытаться поймать начало трека:If(Value = 0, CurrentValue + 1, CurrentValue)
А если использовать не Progress, а TrackPosition или TrackPositionRemaining? Там, конечно, нет фиксированного значения длительности, но НОЛЬ-то есть.
Хочу сделать кнопки сброса настроек эквалайзера и звуковых эффектов.
Так, в справке всё это есть. Просто придётся пробежаться по всем полосам элвалайзера и установить их в 0:EQ.Set('BandValueX', 0), гдеEQ - имя перемонной элвалайзера (провайдер prvEqualizer);X - номер полосы (1..18).Лучше сделать в цикле - меньше писанины.Звуковые эффекты сбрасываются в 0 по ПКМ. Если нужно от кнопки - для этого и биндинга достаточно - просто прописать в связи "0".
Лучше сделать в цикле - меньше писанины.
procedure Execute(var State: Integer);var EQ: TComponent; N: Integer; begin ... EQ:= FindObject('prvEqualizer'); for N:= 1 to 18 do EQ.Set('BandValue' + IntToStr(N), 0); ...end;
Code: [Select]procedure Execute(var State: Integer);var EQ: TComponent; N: Integer; begin ... EQ:= FindObject('prvEqualizer'); for N:= 1 to 18 do EQ.Set('BandValue' + IntToStr(N), 0); ...end;