AIMP Forum
Разное => Предложения (архив) / Suggestions (archive) => Архив / Archive => Реализовано в AIMP v4.50 / Implemented in AIMP v4.50 => Topic started by: Алексей Долматов on November 09, 2016, 23:23:40
-
Хотелось бы иметь возможность получить доступ к контекстному меню кнопки через редактирование, чтоб от одной кнопки можно было вызвать меню другой или изменить действие кнопки по скрипту.
Как вариант через скрипты
procedure Execute(var State: Integer);
var
BackgroundObject : TComponent;
AObjectLinks : TASEButton;
AObjectLinkAction : TComponent;
begin
AObjectLinks := TASEBindings.Create;
AObjectLinkAction := AObjectLinks.LinkAdd('PopopMenu');
AObjectLinks := FindObject('ButtonOpen').Get('PopupMenu');
AObjectLinks.ExecuteAction('PopopMenu');
AObjectLinks.Free;
end;
Или просто возможность для кнопки через set задавать провайдеры pmXXXXX и получать их через вызов в скрипте.
Зачем это нужно?
1. Сейчас по ЛКМ нет возможности назначить доступ к PopupMenu
2. Возможность изменить контекстное меню без замены кнопки
Хоть мне и не нужно, но потратил время на поиски трюка доступа к этому меню.
-
P.S. Вроде что-то такое уже просили и было отказано, но решил попробовать написать, т.к. точно не помню.
-
Я так и не понял, что за задачу мы решаем и зачем
Еще есть вот такая тема - https://www.aimp.ru/forum/index.php?topic=51531
-
Да, суть похожа. Получить доступ к стандартному контекстному меню.
Там основная суть сделать его в пользовательском меню.
Здесь суть:
Кнопка "кнопка" имеет PopupMenu = pmAAAA. Через кнопку "кнопка 2" (схожий элемент) задаём скрипт на вызов контекстного меню у кнопки "кнопка"
Так-же через скрипт можно одновременно заменить действие "кнопка" при нажатии "кнопка 2". Нет мыслей зачем, но вдруг нужно будет.
1-ый вариант нужен для возможности вызова стандартного и пользовательского меню на выбор с одной клавиши
https://www.aimp.ru/forum/index.php?topic=27831.msg336929#msg336929
2-ой вариант нужен для возможности групповой замены оформления кнопок и фонов.
Например, можно сделать так:
С боку две "три полоски", свитчер. Справа от них контейнер.
В варианте "А" положения свитчера справа эквалайзер и кнопка по ЛКМ вызывает DSP плагины, по ПКМ настройки эквалайзера.
В варианте "Б" информация о текущем треке. Кнопка по ПКМ вызывает быстрые настройки воспроизведения, а по ЛКМ список плейлистов.
При этом в рамках одного скрипта внешний вид контейнера и надписей меняется в зависимости от содержимого контейнера.
Конечно, эти задачи слишком специфичны и можно делать всё по ПКМ через настройку видимости кнопок и размещение их друг над другом.
-
Может, проще сделать, чтоб корректно работала такая схема?
(https://www.aimp.ru/forum/index.php?action=dlattach;topic=54879.0;attach=48436)
Если вышеупомянутая тема (https://www.aimp.ru/forum/index.php?topic=51531) будет реализована, то и к стандартным меню будет доступ.
-
Будет делаться в рамках https://www.aimp.ru/forum/index.php?topic=51531