При длинных путях и назнаниях проектов пользоваться меню "File" становиться неудобно, оно занимает почти пол-экрана. Бывает не просто пробежать по строчке "New Project", не сорвавшись с неё.
Ещё неплохо бы туда добавить пунктик для очистки этого списка, по аналогии с ФШ:
Точнее, по задаче, связывающей их. Имеется ввиду группировка только в диалоге "Custom Providers", никак логически их не связывающая, а как вариант отображения. Ес-но, пользователь должен будет (при желании) сам создавать эти группы и обзывать их, и должна быть возможность перетаскивания провайдеров. Сейчас, возвращаясь к проекту, заброшенному на месяц-другой, трудно вспомнить и разобраться: что к чему относится и с чем связано. Не поленился, посчитал - в последних проектах у меня уже насчитыватся до 60-70 польз. провайдеров, список на экран уже давно не помещается и ориентироваться в нём становится сложно. А группы можно было бы схлапывать. И удалять ненужные задачи тоже было бы проще - удалив целиком группу, чтобы не оставалось"хвостов", которые могут влиять на функционирование скина.
- Переменная скорость вращения бобинок - Имитация ускоренной перемотки от кнопок в скине (контекстное меню режима перемотки в зоне кассетоприёмника) - Двухполосный эквалайзер (темброблок) - Функция предварительного прослушивания треков по аналогии с плагином Track Preview (в нижней панели плейлиста) - Прогрессбар тоже расположен в нижней панели плейлиста - Индикатор включения эффектов (тот, что с надписью "dbx"). Сбросить все эффекты можно ПКМ по кнопке DSP (*NEW*) - 9 кассет на выбор, по 3 каждого типа (I, II, IV).
Прототипом усилителя послужил Teac A-9, но пришлось его переделать под AIMP (да, простят меня дизайнеры и конструкторы фирмы Teac !).
Пытаюсь из состояния ПАУЗЫ плеер вернуть в начало трека и запустить воспроизведение с начала: FindObject('acPlayerStop').Execute; FindObject('acPlayerPlay').Execute Но воспроизведение продолжается с остановленной позиции, игнорируя команду СТОП. Такое впечатление, что она просто не успевает отработать. Если закоментить вторую строчку, то команда СТОП срабатывает. А вот такое: while FindObject('prvPlayerState').Get('State') <> 'opsStop' do FindObject('acPlayerStop').Execute; FindObject('acPlayerPlay').Execute завешивает плеер намертво.
При клике по полосе слайдера тумба перемещается в эту точку своим геометрическим центром. Если риска на тумбе посередине и нет тени, то всё ОК. Но если риска смещена или в вертикальных слайдерах рисутствует большая тень, то картинка получается неприглядная. Во вложении тест-проект с таким случаем.
Решил выложить снова скин этого микрокассетника лишь по одной причине: в новой версии плеера удалось реализовать ещё одну давнюю идею - реалистичный механический счётчик. Несколько портит картину небольщое подёргивания цифр в младшем разряде, но, похоже, с этим ничего не поделать... Остальное, как и в других обновлённых скинах: - изменяющаяся скорость вращения бобинок; - имитация ускоренной перемотки с возможностью выбора скорости вращения бобинок; - реалистичный MUTE; - масштабируемый каверарт с сохраненим пропорций обложки альбома.
[catalog_card=747] Из новинок скин-движка реализовано: переменная скорость вращения бобинок, имитация ускоренной перемотки. Контекстное меню режима перемотки находится на крышке кассетоприёмника. В плейлисте (внизу) четыре переключаемых панели. На одной из них реализована функция предварительного прослушивания треков (по аналогии с плагином Track Preview).
Вот такая мысль прищла в голову, может бредовая, сильно не пинайте. Бывают ситуации, когда на туже кнопку навешано своё меню, а хотелось бы, чтоб и стандартное меню для той же кнопки было в качестве суб-меню в пользовательском. Может, в заголовке указывать это в виде ссылки на меню или посредством биндинга в DiplayValue или ещё свойство добавить в редакторе меню?