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

Добавлено: Ср мар 06, 2019 20:25
Loopback
Новая версия.

+ добавлен параметр /WAIT:<ms>
+ уборка файла Autorun_MoveButton.pos от неиспользуемых секций

Flasher писал(а):Почему версия-то непригодна
Ну я имел в виду для него. Режим без /NARROW работать будет, конечно.

Добавлено: Чт мар 07, 2019 00:54
rk2019
Loopback

Спасибо! Теперь действительно то, что хотелось!

Коротенький мануал, для тех кто захочет получить такие диалоги копирования/перемещения на ТС 8.52а.

Сразу предупреждаю, ТС 9.ХХ я не приемлю ввиду растянутого шага в списке файлов + замене иконок под закос стиля Вин 10. Короче такой ТС в топку - последняя адекватная версия 8.52а с классическим видом.

Изображение

Для получения таких диалогов, нужно установить:
1) ТС 8.52а
2) wdx_autorun_2.0.4.zip с хитрой процедурой запуска через Цветовые схемы, в описании плагина есть процедура установки
3) movebutton_20190304.zip - именно эту версию, с более новой будет работать некорректно
4) в autorun.cfg добавить строки

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

# Enables MoveButton functionality
# Включает функционал MoveButton
LoadLibrary Plugins\Autorun_MoveButton.dll
If %AUTORUN_TCARCH% = 32 Then

AddDialog /X:58 /W:-116 DIALOG_COPYMOVE
AddCondition /VISIBLE:1 "TButton" 2
AddControl /X:-93 /Y:-74 /W:-20 "TButton" 3
AddControl /X:-116 /Y:1 "TButton" 1
AddControl /W:-116 "TMyComboBox" 1
AddControl /W:-114 "TAltEdit" 1
AddControl /X:-111 "TMyCheckBox" 1
AddControl /W:-101 "TMyCheckBox" 3
AddControl /W:-114 "TMyGroupBox" 1

AddDialog DIALOG_COPYMOVE_POST
AddControl /W:-114 "TMyComboBox" 1
AddControl /W:-114 "TCheckBox" 1
AddControl /W:-114 "TCheckBox" 2
AddControl /W:-114 "TCheckBox" 3

AddDialog /X:58 /W:-116 DIALOG_COPYMOVE_PINNED
AddControl /W:-113 "TMyGroupBox" 1
AddControl /W:-113 "TMyComboBox" 1
AddControl /W:-116 "TMyComboBox" 2
AddControl /W:-113 "TAltEdit" 1
AddControl /X:-116 /Y:1 "TButton" 1
AddControl /X:-110 "TMyCheckBox" 1
AddControl /W:-113 "TCheckBox" 1
AddControl /W:-113 "TCheckBox" 2
AddControl /W:-113 "TCheckBox" 3
MoveOptionsButton
Else
MoveOptionsButton /NARROW
Endif
В итоге должны получить диалоги, как на скриншоте.

Добавлено: Чт мар 07, 2019 01:44
Flasher
Loopback писал(а):+ добавлен параметр /WAIT:<ms>
Аж 2 секунды поставил — [s]нет результата[/s].

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

# Сохранение размера и позиции "Выбор команды"
AddDialog /WAIT:2000 /SAVE:15 "TCmdSelForm"
[s]Может, ты сделал задержку не до момента изменения окна из запомненных данных, а до момента сохранения в Autorun_MoveButton.pos?[/s]
И что сулит такое запоминание при переходе на мониторы с меньшим разрешением? Тут нет автоподгонки под края экрана? Не лучше сделать в процентах от него?
И раз сам ТС запоминает восстановленное окно, можно сделать чтобы /WAIT срабатывала только при развёрнутом варианте (высота окна >= высоте экрана)?

Кстати, ты не хочешь в хелп мой пример с выравненными под оптимальную ширину кнопками добавить?
Хотя у Гислера этот момент не регламентирован, разница ширин кнопок гуляет в разных диалогах в диапазоне из десятка-другого пикселей.

И что там по хотелке? Не хотелось бы релиза без неё. :roll:

rk2019 писал(а):Сразу предупреждаю, ТС 9.ХХ я не приемлю ввиду растянутого шага в списке файлов + замене иконок под закос стиля Вин 10. Короче такой ТС в топку - последняя адекватная версия 8.52а с классическим видом.
Если рассматривать степень адекватности ФМ только по иконкам (а даже не убитым 3D-границам в тулбаре и увеличенным дисковым кнопкам с результирующими жалобами и здесь и на оффоруме), которые меняются на раз, то такое мнение всерьёз воспринимать тут никто не будет, при том сколько исправлений кучи всего было сделано в новых версиях, не говоря уже о добавке давно ожидаемых и весьма полезных опций. Да и растянутый шаг в файловых панелях при одинаковом шрифте никто здесь пока также не наблюдал.

Добавлено: Чт мар 07, 2019 10:36
Loopback
Flasher писал(а):Аж 2 секунды поставил — нет результата.
Не знаю, может мы разные результаты ожидали? Без ожидания окно расширенное командами Win-Left/Right свой размер после закрытия/открытия теряло, теперь к нему возвращается.
Flasher писал(а):Может, ты сделал задержку не до момента изменения окна из запомненных данных, а до момента сохранения в Autorun_MoveButton.pos?
Задержка сделана от момента появления окна. Т.е. для этого окна перемещение кнопок, восстановление позиции и центрирование (в этом порядке) производится через заданное количество мс после появления окна.
Flasher писал(а):И что сулит такое запоминание при переходе на мониторы с меньшим разрешением? Тут нет автоподгонки под края экрана? Не лучше сделать в процентах от него?
Сулит пользователю чрезвычайно сложную работу по изменению окна и сохранению новых позиций. Нет, это уже избыточно.
Flasher писал(а):Кстати, ты не хочешь в хелп мой пример с выравненными под оптимальную ширину кнопками добавить?
Хотя у Гислера этот момент не регламентирован, разница ширин кнопок гуляет в разных диалогах в диапазоне из десятка-другого пикселей.
Могу и добавить, мне не жалко :D Только комментарии надо будет под английскую версию переводить.
А кнопки у Гислера гуляют, это да. У него эстетика всегда на втором месте после функционала. И в принципе меня это устраивает.
Flasher писал(а):И что там по хотелке? Не хотелось бы релиза без неё.
Это другой плагин, какое отношение он имеет к MoveButton? Чем раньше MoveButton уйдет в релиз, тем раньше будет шанс заняться тем.

Добавлено: Чт мар 07, 2019 10:50
Flasher
Loopback писал(а):Не знаю, может мы разные результаты ожидали?
Нет. [s]После Win+Left/Right позиция и размеры окна "Выбор команды" после закрытия по Esc не запоминаются.[/s] Напомню, что тема на x86 7-ке классическая.
Loopback писал(а):Нет, это уже избыточно.
А что сложного в процентной реализации /SAVE? Вроде математика простая. Зачем нам геморрой с диалогами, растянутыми за пределы экрана?
Глянь ещё дописку со слов "И раз сам ТС".
Loopback писал(а):Только комментарии надо будет под английскую версию переводить.
В хелпе примеры вообще без комментариев. Их можно убрать.
Loopback писал(а):Это другой плагин, какое отношение он имеет к MoveButton?
Ну, это же дочерние плагины, которые идут в архиве и релизе (на wincmd.ru) главного, а не отдельно. Я думал, ты про релиз Autorun писал.

Добавлено: Чт мар 07, 2019 11:18
Loopback
Flasher писал(а):Нет. После Win+Left/Right позиция и размеры окна "Выбор команды" после закрытия по Esc не запоминаются. Напомню, что тема на x86 7-ке классическая.
У меня запоминается и воспроизводится. Тема классическая на 7. Код такой:

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

AddDialog /SAVE:15 /WAIT:50 "TCmdSelForm"
Flasher писал(а):А что сложного в процентной реализации /SAVE? Вроде математика простая.
Дело не в сложности, а в неправильности такого подхода. Т.е. вроде сохранение, а вроде и нет, т.к. воспроизводится на разных экранах всё по разному. Если тебя смущают именно окна, ушедшие за пределы экрана, можно в таких случаях их изменять так, чтобы они полностью помещались в экран. Но не более того.
Flasher писал(а):И раз сам ТС
Нет, слишком муторно.
Flasher писал(а):Я думал, ты про релиз Autorun писал.
Про Autorun. Ну будет сейчас к примеру 2.05, а тот плагин в релизе 2.06 или 2.09 или еще в каком. Не вижу проблем.

Добавлено: Чт мар 07, 2019 11:33
Avada
Loopback
Кстати, к вопросу об эстетике и её значении для Гислера. В справке был бы, ИМХО, уместен (помимо существующих) ещё и примерчик того, как в диалоге создания нового файла (Shift+F4) отобразить кнопку "Дерево" не ДО кнопки OK (как сейчас), а ПОСЛЕ. Это компоновочный глюк из серии особо вопиющих.

Добавлено: Чт мар 07, 2019 11:33
Flasher
Loopback писал(а):У меня запоминается и воспроизводится.
Прошу прощения. Я не тот конфиг правил. Теперь убедился в работоспособности. :)
Loopback писал(а):т.к. воспроизводится на разных экранах всё по разному.
В смысле? По-разному в процентном соотношении как раз сейчас. А с процентами будет соответствие размерам экрана. Но есть и более оптимальный вариант. Запоминать пиксели в секциях разрешений аля [1024x768 (10x20)] и [AllResolutions], как это реализовано в wincmd.ini.
Loopback писал(а):Нет, слишком муторно.
Но это ведь позволит не дёргать окно с ожиданием, когда это не требуется. Узнать высоту экрана и сравнить с запомненной — это же самое простое.
Можно сделать /WAIT:<ms>[:H] или добавить /WAITH:<ms>.
Loopback писал(а):Не вижу проблем.
Я к тому, что ты приступил к реализации в обратной последовательности запросов. Ожидалось, что всё по меньшей мере пойдёт в совокупности.
Это, конечно, не катастрофа. Делай, как тебе удобней.

Добавлено: Чт мар 07, 2019 12:20
Loopback
Flasher писал(а):По-разному в процентном соотношении как раз сейчас.
Так это функция сохранения позиции и размера. "Процентные соотношения" тут вообще никаким боком.
Flasher писал(а):А с процентами будет соответствие размерам экрана. Но есть и более оптимальный вариант. Запонимать пиксели в секциях разрешений аля [1024x768 (10x20)], как это реализовано в wincmd.ini.
Ага, давай второй тотал напишем еще :D

На самом деле, сделать чтобы были разные секции для разных разрешений несложно. Куда проще, чем невнятные процентные соотношения. Но со всеми вытекающими минусами такого подхода, в виде плодящихся секций.
Flasher писал(а):Но это ведь позволит не дёргать окно с ожиданием, когда это не требуется. Узнать высоту экрана и сравнить запомненной — это же самое простое.
Т.е. универсальное решение, потенциально могущее помочь и в других случаях, будет работать исключительно в граничных условиях с этим окошком. Отлично. Но нет. Вполне можно поставить маленькую задержку, и процесс будет практически незаметен.

PS: Более того, тут высота окна не равна высоте экрана.
Flasher писал(а):Ожидалось, что всё по меньшей мере пойдёт в совокупности.
Писать разные вещи параллельно очень неудобно. Особенно когда что-то на дельфи, что-то на си, сложно постоянно переключаться.

Я взялся за этот плагин в первую очередь (ладно, во вторую) только по одной причине - сначала надо браться за самое неприятное. Я уже писал, что лично мне он давно не особенно интересен. Единственное что хотелось - его поправить и забыть. А во что это вылилось.

Добавлено: Чт мар 07, 2019 12:33
Flasher
Loopback писал(а):Но со всеми вытекающими минусами такого подхода, в виде плодящихся секций.
Не думаю, что мы заметим эти минусы. Конфиг API-шной функцией читается быстро. Вон ТСFS2 (и не только) с большущим конфигом летает будь здоров. А тут будет в десятки раз меньше секций.
Loopback писал(а):будет работать исключительно в граничных условиях с этим окошком.
Почему это? Я же написал:
Flasher писал(а):Можно сделать /WAIT:<ms>[:H] или добавить /WAITH:<ms>.
Т.е. это сугубо опциональная вещь.
Loopback писал(а):Более того, тут высота окна не равна высоте экрана.
Поэтому я написал:
Flasher писал(а):(высота окна >= высоте экрана)
Loopback писал(а):Писать разные вещи параллельно очень неудобно.
Поэтому я и пишу:
Flasher писал(а):Это, конечно, не катастрофа. Делай, как тебе удобней.
Loopback писал(а):Я уже писал, что лично мне он давно не особенно интересен.
Жаль. :(
Loopback писал(а):Единственное что хотелось - его поправить и забыть. А во что это вылилось.
Осталось совсем чуть-чуть. Потерпи немного, друже. Уже и так много добра сделал. :)

Добавлено: Чт мар 07, 2019 12:55
Loopback
Flasher писал(а):Не думаю, что мы заметим эти минусы.
Да за скорость можно особо не волноваться, но в определенных условиях (виртуальные машины к примеру) количество секций будет разрастаться прилично.
Flasher писал(а):(высота окна >= высоте экрана)
Она здесь не больше, а меньше.

И вообще, в чем проблема-то? Если окно неразвернутое, то его координаты будут и в тотале, и в плагине одинаковые. Соответственно и плагин визуально ничего дополнительно не двигает. Зачем огород городить?
Flasher писал(а):Осталось совсем чуть-чуть.
К этому чуть-чуть каждый день добавляется еще чуть-чуть, и ещё и ещё. Если это не прервать, процесс будет бесконечен.

Тут одно окошко не обрабатывается. Теперь обрабатывается, ой, а теперь давай еще и условие под него сделаем специальное. Под единственное окошко, ну а почему бы и нет, а то опций мало.

Добавлено: Чт мар 07, 2019 13:24
Flasher
Loopback писал(а):но в определенных условиях (виртуальные машины к примеру) количество секций будет разрастаться прилично.
Виртуальные нужны для тестов, а не повседневки. В последнем случае всё будет ограничиваться 2-3-мя (ну, может, 4-мя) секциями расширений. Только судя по тому, что идентификаторы окон (кстати, что это?) прописаны сейчас как названия секций, их придётся встраивать в имена ключей. Или переделать в XML. Ну, тебе виднее.
Loopback писал(а):Зачем огород городить?
ОК. Убедил.
Loopback писал(а):Если это не прервать, процесс будет бесконечен.
Не будет. Уверяю. Окна в целом все я просмотрел. Никаких особых моментов больше не наблюдаю. По крайней мере в ближайшей перспективе их не будет.

Добавлено: Чт мар 07, 2019 13:43
Loopback
Flasher писал(а):Виртуальные нужны для тестов, а не повседневки.
Виртуалки уже давно переросли такое применение. У меня их много именно в повседневной работе. Среды программирования, к примеру, в виртуалке.

По количеству секций там может быть и больше, т.к. в виртуалке может быть любое разрешение экрана. Но проблема в самом деле гипотетическая, в крайнем случае всегда можно снести pos-файл и начать заново.
Loopback писал(а):ОК. Убедил.
Хорошо. Добавлю только условие, чтобы MoveWindow вообще не выполнялось, если загруженные координаты равны текущим окна, чтобы не было лишней перерисовки. Это, кстати, для любых ситуаций будет правильно.
Flasher писал(а):Не будет. Уверяю.
Это радует :wink:

Добавлено: Чт мар 07, 2019 13:50
Flasher
Loopback писал(а):По количеству секций там может быть и больше, т.к. в виртуалке может быть любое разрешение экрана.
Мм.. А если проверять на виртуальность и игнорировать? Изображение
P.S.: Я ещё xml выше предлагал.
Loopback писал(а):Но проблема в самом деле гипотетическая, в крайнем случае всегда можно снести pos-файл и начать заново.
Т.е. плагин будет сносить файл как только выяснит, что разрешение не соответствует предыдущему? Но тогда при возрате на предыдущее разрешение окно под него не восстановится.
Loopback писал(а):Это, кстати, для любых ситуаций будет правильно.
Согласен. Оптимальное решение.

Добавлено: Чт мар 07, 2019 14:11
Loopback
Flasher писал(а):Мм.. А если проверять на виртуальность и игнорировать? P.S.: Я ещё xml выше предлагал.
Да не, ни к чему это, для этой задачи ini вполне достаточно.

Идентификаторы это хэш от строки, включающей имя класса и все условия.
Flasher писал(а):Т.е. плагин будет сносить файл как только выяснит, что разрешение не соответствует предыдущему?
Нет, конечно, снос файла оставим пользователю :) Если он вдруг решит, что накопилось слишком много.