Страница 111 из 243

Добавлено: Пн июн 01, 2020 00:41
yozhik
Ух ты, как много поменялось со вчерашнего дня!
А у меня жалоба на 2.1.1, но если надо могу перепроверить на новой 2.2.х.
Вызываю Распаковку архива кликом по кнопке F6 с зажатым Alt

Код: Выделить всё

ControlSetMouseAction /L:U /K:A 17 /B:4 SendCommand 509
Диалог открывается, но на нажатие клавиш Enter, Esc, Tab не реагирует. Надо по нему кликнуть мышкой, только тогда он «отмирает». Смотришь на него — он вроде в фокусе, а на самом деле фокуса на нём нет. Причём, если мышкой кликнуть по любой кнопке (в том числе по красной закрывающей), то ничего не сработает, только со второго клика.

Добавлено: Пн июн 01, 2020 01:12
Flasher
Loopback писал(а):На самом деля я вроде и не давал каких-то конкретных обещаний.
Если под конкретными ты понимаешь временны́е, то, разумеется, нет. ;)
Loopback писал(а):Да и что-то та тема уже несколько поднадоела
Какая та? Вызов списка команд через запятую или какая?
Loopback писал(а):Можно без скобок командой (если не нужно возвращаемое значение), можно со скобками:
Хорошо. А под "можно сделать" я имел в виду запрос, а не нынешнюю правку конфига.
Loopback писал(а):Но что-то мне подсказывает, что сейчас оно как-то не как задумано работает...
Позже оценю тогда.
Loopback писал(а):но как выяснилось, возможны менее болезненные варианты.
Значит, тогда я был ближе к истине. ;)


yozhik
Это опять же с Alt и фокусировкой на главном меню связано, как в случае с фиксом в отношении прокрутки вкладок.

Добавлено: Пн июн 01, 2020 09:00
yozhik
Flasher
У кнопки F5 этот функционал с клавишами — родной. И когда с Alt по F5 щёлкаешь, то всё работает.

Добавлено: Пн июн 01, 2020 09:35
Flasher
yozhik
Я понимаю. Это суть моих слов не меняет.

Добавлено: Пн июн 01, 2020 12:27
yozhik
Loopback
Я тут ещё мелочь заметил, похоже ускользнула от внимания. В справке на странице «Стандартные плагины»
В дистрибутив уже включены три плагина.
Наверное вы забыли добавить строчку про Tweaks. Ну, и «три» бампнуть :) .

Добавлено: Пн июн 01, 2020 12:39
Loopback
Flasher писал(а):Какая та?
Меню по комбинациям кнопок. Или отдельная утилита, что в общем небольшая разница.
Flasher писал(а):Вызов списка команд
Если имеется в виду это, то сейчас как раз легко решается функциями.
Flasher писал(а):А под "можно сделать" я имел в виду запрос, а не нынешнюю правку конфига.
Не понял.
yozhik писал(а):Вызываю Распаковку архива кликом по кнопке F6 с зажатым Alt
Да, все эти проблемы в стандартном действии одиночного альта. В такой комбинации при отпускании альта фокус явно передается основному окну, соответственно, новое окно не обрабатывает нажатия. Как такой вариант можно исправить в при существующей реализации я не очень представляю. Если не критично использование события именно по отпусканию левой кнопки, то по событию нажатия (просто /L) всё работает корректно.
yozhik писал(а):Ну, и «три» бампнуть
Точно, поправил на "несколько" (на будущее, так сказать) + новый добавил.

Добавлено: Пн июн 01, 2020 13:51
yozhik
Loopback писал(а):Если не критично... именно по отпусканию...
Абсолютно не критично. Это уж так подумалось, что, мол, иногда редко, но бывает, что нажал на кнопку и вдруг передумал, и тогда не отпуская ЛКМ отводишь в сторону и она не срабатывает. Сделал с просто /L — работает замечательно, всем доволен. Спасибо.

В качестве идеи (у меня, правда, технические идеи не очень обычно получаются, но вдруг в этот раз народ поддержит и вы заинтересуетесь). Сейчас с Tweaks нижнюю панель с F-кнопками (и не только её) стало возможным сделать очень функциональной. Как бы сами напрашиваются всплывающие хинты к кнопкам, где можно было бы подсмотреть шпаргалку про существующие возможности. Было бы, наверное, всем очень удобно (в первую очередь мне)). А если бы ещё в этих хинтах был перенос строк и табы для хоткеев вправо, то вообще б красота. Может быть, это не сложно было бы реализовать :roll: . Например, для F5 уже четыре строчки имеются, причём родного функционала:

Код: Выделить всё

Copy              <click>
Create shortcut   Ctrl+<click>
Pack              Alt+<click>
Pack in place     Alt+Ctrl+<click>
А с Tweaks и того больше можно...

Добавлено: Пн июн 01, 2020 16:16
Flasher
Loopback писал(а):Меню по комбинациям кнопок.
Понял.
Loopback писал(а):Если имеется в виду это, то сейчас как раз легко решается функциями.
Не только это. Но это, мягко говоря, не одно и то же. Дело же не только в возможности вызова самой последовательности, но и в короткой записи по аналогии с ТС.
Loopback писал(а):Не понял.
Ну, ты объясняешь, что сейчас нельзя сделать. Я это изначально предполагал, поэтому скорее запрашивал на будущее, чем спрашивал о нынешнем вызове.
yozhik писал(а):Сделал с просто /L — работает замечательно
Хех. Я бы точно не начинал тестировать с параметром отпускания, думал, у остальных так же, и даже предлагать не стал. Изображение

Добавлено: Пн июн 01, 2020 19:20
Loopback
Flasher писал(а):но и в короткой записи по аналогии с ТС.
А, ну понятно. Я-то думал ехать, а тут шашечки :)
Flasher писал(а):Ну, ты объясняешь, что сейчас нельзя сделать.
Нельзя, и маловероятно, что будет можно. Альтернатива - введение обязательного разделителя функций (как ";" в паскале или С, сейчас это конец строки) и чего-то подобного анонимным функциям или, как минимум, синтаксиса для задания блока. К тому же тогда нельзя будет записать команду классическим методом, только функциональным, чтобы парсер мог добраться до блока. Да и скорее всего, от классического метода совсем придется отказаться. Стоит ли это возможности запихнуть всё в одну строку? Мне ответ очевиден.

Если уж так хочется всё сократить до строки, можно сделать универсальную библиотечную функцию с нужными параметрами и результатом и использовать её в нужных местах.
yozhik писал(а):В качестве идеи
Ну в принципе идея имеет место быть, но насколько это окажется сложно - надо смотреть. Системный метод вывода подсказок вряд ли заработает, т.к. у контролов дельфи свои механизмы, а на функциональных клавишах не заработает точно, т.к. весь все они - один контрол. В общем это точно не сейчас.

Добавлено: Пн июн 01, 2020 19:40
Flasher
Loopback писал(а):а тут шашечки
Они самые. :D
Loopback писал(а):только функциональным
То бишь в скобках? Это разве плохо?
Loopback писал(а):Да и скорее всего, от классического метода совсем придется отказаться.
В контексте параметра или вообще во всём синтаксисе конфига?

Добавлено: Пн июн 01, 2020 20:09
Loopback
Flasher писал(а): Это разве плохо?
Не то чтобы плохо, но нецелесообразно. В развесистых командах типа AddControl командный синтаксис удобнее. Опять же, потеря совместимости, ибо:
Flasher писал(а):В контексте параметра или вообще во всём синтаксисе конфига?
Во всем. Не делать же в парсере исключение под одну конкретную функцию.

Добавлено: Пн июн 01, 2020 21:29
Flasher
Loopback писал(а):Не делать же в парсере исключение под одну конкретную функцию.
Почему одну? Ещё вложенные if-ы есть. :) Можно же подкомандые if-ы отдельно написать. Нет?

Добавлено: Пн июн 01, 2020 23:18
yozhik
Loopback

Код: Выделить всё

ControlSetMouseAction /L /K:S 17 /B:7 CommandExec em_TCRestart
В 2.1.1 работает, а в 2.2.1 не хочет.

DisableMarkedMenuItems поставил перед группой команд ControlSetMouseAction — не сработал. Поставил после — сработал. Если так и должно быть, может стоит в справке упомянуть про строгую последовательность?
Loopback писал(а):а на функциональных клавишах не заработает точно
А может тогда несложно и уместно сделать чтоб DisableMarkedMenuItems рапространялся и на менюшки ShowPopupMenu? Тогда можно было бы шпаргалку из неактивных пунктов сделать. Костыль, конечно, но рабочий и вполне симпатичный.

Добавлено: Пн июн 01, 2020 23:56
Loopback
Flasher
С вложенными If-ами нет проблем. Что за подкомандные не знаю.

В общем это, наверно, не так просто объяснить. If..Then, даже однострочный, это по-сути блок кода. В параметрах команд/функций могут быть любые выражения, но не блоки. Поддержку блоков можно было бы сделать, если бы был разделитель команд типа ";". Сейчас разделитель конец строки, с ним не получится. Никак.

В Autoit такой же принцип и те же ограничения. Вот то, что ты предлагаешь, и оно так же не будет работать.

Код: Выделить всё

$a = 1
Test(123, If $a < 0 Then $b = 1)

Func Test($a, $b)
EndFunc
yozhik
Занятно, у меня работает. Ну на то она и бета.

Единственное что могу предположить, что парсер сбивается на какой-то особенности вашего конфига. Если попробовать чистый конфиг, только с загрузкой Tweaks, будет работать?

Строгой последовательности здесь нет, но теоретически возможно, что на момент запуска DisableMarkedMenuItems тотал еще не создал меню. Имеет смысл расположить DisableMarkedMenuItems где-нибудь в самом конце, а возможно, даже поставить перед ним задержку. Пожалуй, это можно и в самом деле документировать.
DisableMarkedMenuItems рапространялся и на менюшки ShowPopupMenu
С этой командой не получится. Чисто теоретически, можно добавить поддержку функционала DisableMarkedMenuItems в ShowPopupMenu (она же создает элементы меню), но не очень хотелось бы загромождать команду. Ну можно будет подумать.

Добавлено: Вт июн 02, 2020 07:50
Flasher
yozhik писал(а):чтоб DisableMarkedMenuItems рапространялся и на менюшки ShowPopupMenu? Тогда можно было бы шпаргалку из неактивных пунктов сделать.
Я на днях тоже об этом думал, было бы удобно (если бы ещё у меня работало :lol:).
Loopback писал(а):Что за подкомандные не знаю.
Отдельно написанная if-функция под команды, не из блочного синтаксиса:

Код: Выделить всё

ControlSetMouseAction /R /K:A /H:64 0 if(%"IniRead('~/R',%COMMANDER_INI%,Configuration,LanguageIni)"=WCMD_RUS.LNG,CommandExec(em_Lang),CommandExec('em_Lang Wcmd_rus.lng'))
ControlSetMouseAction ... if(%AUTORUN_TCPID%=32,ShellExec('~/SW_HIDE',prog.exe),ShellExec('~/SW_HIDE',prog64.exe))