0 Members and 7 Guests are viewing this topic.
Theme_Trigger должен возвращать либо 0 либо 1, если он возвращает три значения значит это не то. у тебя там (TriggerValue > 1) подразумевает третье значение. Его либо нету вот оно и работает только со светлой либо не туда смотрим в целом.
if (L < 0.3) and (TriggerValue <> 1) or (L > 0.7) and (TriggerValue = 1) then begin State := 0; // Светлая обложка + счетчик в режиме светлой темы или Темная обложка + счетчик в режиме темной темы end else begin State := 1; // Любая обложка end; if (State = 0) then SetupTheme('0') else SetupTheme('1');
Read more...Нет смысла проверять L >= 0.0, оно не может быть отрицательным, равно, как и L <= 1.0, - больше 1 тоже быть не может.Так же можно упустить операторные скобки, поскольку между ними одно выражение:Code: [Select] if (L <= 0.2) and (TriggerValue = 1) then State := 0 // Темная обложка + счетчик в режиме темной темы else if (L >= 0.8) and (TriggerValue > 1) then State := 1 // Светлая обложка + счетчик в режиме светлой темы else State := 2; // Средняя обложка или несоответствие счетчику
if (L <= 0.2) and (TriggerValue = 1) then State := 0 // Темная обложка + счетчик в режиме темной темы else if (L >= 0.8) and (TriggerValue > 1) then State := 1 // Светлая обложка + счетчик в режиме светлой темы else State := 2; // Средняя обложка или несоответствие счетчику
Code: [Select] if (L < 0.3) and (TriggerValue <> 1) or (L > 0.7) and (TriggerValue = 1) then
if (L < 0.3) and (TriggerValue <> 1) or (L > 0.7) and (TriggerValue = 1) then
И всё таки меня смущает этот момент ты не указываешь явно ноль. Если там всё же есть третье значение то этот скрипт не рабочий потому что если значение будит равно 2 то скин может быть тёмным или светлым в этот момент а твой скрипт запишет состояние светлого.
Как вообще получить значение результирующего режима посылаемого виндой? Если мы явно указываем темную или светлую тут всё понятно а если выбираем авто откуда считывать значение 0 или 1?
В справке вот что по этому поводу написано:
То, что выбирается настройками/виндой, можно узнать через AIMPMainForm.NightMode.
Или нужно узнать именно цвет акцента, выставленный пользователем / виндой?
А вот это было бы тоже очень полезно
Надёжнее всего запретить изменение цвета пользователем в редакторе, тогда из кавера получим его настоящие цвета.
Ну это от конкретной задачи зависит
Расширил возможности скин-движка для работы с акцентными скинами, можно поиграться на сегодняшних сборках плеера и редактора.
Сначала рисуются все элементы фона, затем, поверх них - элементы управления. Отрисовка идёт строго по дереву сверху вниз.