[ Обновленные темы · Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Модератор форума: Andrey_A, ХарВик, chip642  
Форум » • Total Commander • » Кнопки для Total Commander » ЗАКАЗ КНОПОК
ЗАКАЗ КНОПОК
ХарВикДата: Вторник, 17.04.2012, 21:49 | Сообщение № 1
Генералиссимус

На сайте с: 29.01.2012
Город: Черкассы
Сообщений: 1629
Награды: 18
Репутация: 18
ЗАКАЗ КНОПОК




В этой теме Вы можете высказывать идеи о каких-либо кнопках. Вы можете описать какую хотелось бы иметь кнопку и возможно найдутся те, кто подскажет как её сделать.
Большая просьба чётко описывать задачу, от этого будет зависеть качество её решений


Группа TCIMG в Telegram

.
 
chip642Дата: Воскресенье, 06.01.2019, 17:03 | Сообщение № 1471
Генералиссимус

На сайте с: 24.04.2013
Город: Москва
Сообщений: 1495
Награды: 62
Репутация: 58
Mrakobes

Перевести "Как в предложении" имена всех выделенных папок и их подпапок.

Код
renms=FOLDM<%L//2//-1>||??3||upd<1>


Перевести "Как в предложении" базовые имена всех выделенных папок и всех объектов которые в них находятся.

Код
renms=FOLDM<%L//0>||??3||upd<1>


Перевести "Как в предложении" базовые имена всех файлов выделенных папок

Код
renms=FOLDC<%L//1//-1>||??3


Цитата Mrakobes ()
соседняя кнопка по удалению "под курсором" после нажатия папки исчезают, а эти как будто остались


Не понял. Команда emptt удаляет пустые папки, если что.

Цитата Mrakobes ()
Проводник зло, согласен

Я про зло ничего не говорил, не наговаривайте на меня.
 
MrakobesДата: Воскресенье, 06.01.2019, 18:57 | Сообщение № 1472
Полковник

На сайте с: 08.08.2014
Город: Москва
Сообщений: 175
Награды: 2
Репутация: 2
Цитата chip642 ()
Не понял. Команда emptt удаляет пустые папки, если что


не, не, у меня все удаляется но по какой-то причине upd<1> не обновляет панель и после удаления видны папки, обновляю ручками - папки исчезают, в других вариантах upd<1> отрабатывает нормально

все три варианта кнопок работоспособные, спасибо за регулярные инструкции! Терпения не хватает такой массив изучить справки, комбинирую всяко из примеров, не хватае какойнить скобки и ничего не работает

Цитата chip642 ()
Я про зло ничего не говорил, не наговаривайте на меня


я уж думал, что мы из одной секты АумТоталКоммандер
 
asmadeusДата: Понедельник, 07.01.2019, 21:34 | Сообщение № 1473
Генералиссимус

На сайте с: 14.12.2012
Город: Кривой Рог
Сообщений: 1375
Награды: 29
Репутация: 32
alexostrov, с помощью участников форума кнопка дополнена. Примерно так:
Код
alist=INI<7//%%COMMANDER_PATH%%\Wcmicons.inc//mappings//>||formt<1> blist=INI<7//%%COMMANDER_PATH%%\Wcmicons.inc//mappings//>||formt<1,fun_lib_01> extxs=PS<%%COMMANDER_PATH%%\Files_VOG\Bars\Osnova//1//0//bar>||Bar aends=$GLOBALEXTXS!!-1||Wcmicons.dll,!!||formt<1,fun_lib_01>
extxs=PS<$f312\Tcm//1//0//tcm>||Tcm bends=$GLOBALEXTXS!!-1||#!#!!||formt<1,fun_lib_01> zlist=INI<7//%COMMANDER_PATH%\Wcmicons.inc//mappings//>||formt<1,fun_lib_01>||^^%%COMMANDER_PATH%%\Files_VOG\Icons\Wcmicons\||$$.ico arr2d=$GLOBALALIST+$GLOBALAENDS+GLOBALBENDS||16|0 brr2d=$GLOBALBLIST+$GLOBALAENDS+GLOBALBENDS||16|0 anf2d=PS<%COMMANDER_PATH%\Files_VOG\Icons\Wcmicons//1//0//*.ico//0>||2||[^\\]+\\[^\\]*?(\d+)\.ico zrr2d=$GLOBALANF2D||19|$GLOBALBRR2D||37|1||9|1:0||16|2|$GLOBALANF2D1||16|3|$GLOBALARR2D1 GLOBALZRR2D<a>

Меняем пути и смотрим. Добавлено экспорт из панелей и tcm, но пока только в таблицу. В кнопке много лишнего, знатоки может поправят после праздников.
В tcimgu.ini в секцию FormatUser:
Код
fun_lib_01=(\d+)||StringFormat('%04s',Number($1))

Просто в tcimgu.ini:
Код
[Extract_Tcm]
1=5||0!!(#!#\d+#!#)
[Extract_Bar]
1=5||0!!button\d+\=(Wcmicons.dll,\d+)

Сколько будет иконок в сравнении с вашими прошлыми 293
У меня с 556 стало 587. Остались еще различные ini файлы, и я не знаю, как поступать, если иконки не из библиотеки тотала, а с какой то другой или вообще из исполняемого файла?
 
alexostrovДата: Вторник, 08.01.2019, 12:58 | Сообщение № 1474
Полковник

На сайте с: 22.11.2017
Сообщений: 179
Награды: 0
Репутация: 0
asmadeus
Похоже что извлеклись только № значков из баров, где есть button= Wcmicons (у меня в барах используется библиотека Wcmicons_bars.dll), поэтому их так мало. Видно в каком-то остались значки из Wcmicons. Вечером, после работы проверю.
Я вчера проверил вариант извлечения значков из Tcm, предложенный Romario все работает без проблем.
Все значки извлеклись, дубли выброшены. Проверял на одном файле Tcm.

Добавлено (08.01.2019, 13:12)
---------------------------------------------
[ps]
Вы привязываетесь к файлу Wcmicons.inc, при извлечении значков из баров и tcm, но в файле Wcmicons.inc они могут быть и не прописаны, т.к.
в Wcmicons.inc прописано соответствие значков и команд для главного меню. Возможно поэтому, у меня так мало значков в окне GLOBALZRR2D.
Или я не прав?

Добавлено (08.01.2019, 22:13)
---------------------------------------------
asmadeus
В папке Bar оставил 5 баров с Wcmicons,dll. В результате получаю только 8 значков. как в прикрепленном файле (пост выше).
Ставлю GLOBALAENDS<a> в конце команды extxs=PS<%%COMMANDER_PATH%%\Bar//1//0//bar>||Bar aends=$GLOBALEXTXS!!-1||Wcmicons.dll,!!||formt<1,fun_lib_01 GLOBALAENDS<a> -получаю в окне GLOBALAENDS 52 значка.
Закрываю окно GLOBALAENDS через [х] и в окне GLOBALZRR2D<a> получаю 8 значков.
Если убираю GLOBALAENDS<a> с команды Баров и ставлю в конце
extxs=PS<$f312\Tcm//1//0//tcm>||Tcm aends=$GLOBALEXTXS!!-1||formt<1> GLOBALAENDS<a> то получаю те же 52 значка.

Добавлено (08.01.2019, 23:52)
---------------------------------------------
asmadeus
Поставил контрольные точки после Меню, Bar, Tcm и GLOBALZRR2D уже был. В результате получил 4-е окна:
GLOBALBLIST - 292 значка
GLOBALAENDS - 157 значков
GLOBALBENDS - 338 значков
GLOBALZRR2D - 35 значков
Вопрос_ в строке brr2d=$GLOBALBLIST+$GLOBALAENDS+GLOBALBENDS..... первые 2-е глоб. переменные с $, а GLOBALBENDS без $.
Я правда добавил $, но это картину не изменило. И второе GLOBALZRR2D - это сумма всех значков или я ошибаюсь.
Прикрепления: 6384973.jpg (41.2 Kb)


Сообщение отредактировал alexostrov - Среда, 09.01.2019, 01:09
 
sibirnikДата: Среда, 09.01.2019, 12:30 | Сообщение № 1475
Генерал-лейтенант

На сайте с: 27.08.2014
Сообщений: 742
Награды: 26
Репутация: 10
Помогите пожалуйста решить проблему, имеется рабочая кнопка:
Цитата
bufsr=&&(?i)[^a-zа-яё]!!~~||#G7 ;; Удалить всё не буквенное в содержимом буфера обмена.

Не получается изменить её так, чтобы получилось следующее:
Удалить всё не буквенное в содержимом буфера обмена, кроме этого символа -
Пример как есть: Спасибо - вам_за помощь=2019 (не буквенное может быть любым)
Пример как надо: Спасибо - вам за помощь
 
chip642Дата: Среда, 09.01.2019, 13:52 | Сообщение № 1476
Генералиссимус

На сайте с: 24.04.2013
Город: Москва
Сообщений: 1495
Награды: 62
Репутация: 58
sibirnik

Код
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\TCIMG.exe
bufsr=&&(?i)[^a-zа-яё\-]!!~~||#G7
Wcmicons.dll,19
в содержимом буфера обмена удалить небуквенные символы кроме тире.

-1
 
sibirnikДата: Среда, 09.01.2019, 14:01 | Сообщение № 1477
Генерал-лейтенант

На сайте с: 27.08.2014
Сообщений: 742
Награды: 26
Репутация: 10
chip642,
Как всё просто, не смог сам понять по справке. Огромное спасибо.

Добавлено (09.01.2019, 17:16)
---------------------------------------------
Помогите пожалуйста решить ещё одну проблему, имеется рабочая кнопка:

Цитата
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\TCIMG.exe
bufsr=&&([^#]+).*#([^#]+)!!$2@CRLF$1 exect=$var_ac=StringRegExp(ClipGet()&@CR&@CR,'(?m)^([^\r\n]*)',3)||$var_ab=StringSplit('TOTALCMD#BAR#DATA|%%COMMANDER_PATH%%\TCIMG.exe|#|Wcmicons.dll,0|','|',2)||$var_ab[2]=$var_ac[0]||$var_ab[4]=$var_ac[1]||_ArrayToClip($var_ab,@CRLF) barbt=1||-1
%COMMANDER_PATH%\Wcmicons.dll,23
Создать в буфере обмена кнопку из строки кнопки MENUIMG.tcm + Добавить на активную панель.

Нужно сделать так:
Цитата
Создать в буфере обмена кнопки из скопированных строк файла MENUIMG.tcm с добавлением каждой отдельной кнопки на активную панель.

Пробовал так, не работает.
Цитата
<FOR> 1 <TO> 2 bufsr=&&([^#]+).*#([^#]+)!!$2@CRLF$1 exect=$var_ac=StringRegExp(ClipGet()&@CR&@CR,'(?m)^([^\r\n]*)',3)||$var_ab=StringSplit('TOTALCMD#BAR#DATA|%%COMMANDER_PATH%%\TCIMG.exe|#|Wcmicons.dll,0|','|',2)||$var_ab[2]=$var_ac[0]||$var_ab[4]=$var_ac[1]||_ArrayToClip($var_ab,@CRLF) barbt=1||-1 <NEXT>

Не знаю, как сделать, чтобы в цикле он брал от первого MENUITEM до второго - создавал кнопку, потом брал от второго MENUITEM - создал кнопку и так далее...до конца скопированных строк. И ещё чтобы при копировании MENUITEM - подсчитал сколько кнопок будет создано и подставил в цикл <FOR> 1 <TO> 2 вместо двойки нужное число. Можно конечно вручную подсчитать сколько и подставить, но авто лучше.
Вот строки для примера(очень много таких разных строк у меня, по одной переделывать очень долго)
Цитата
MENUITEM Создать каталоги в ДП именами из выделенных объектов#!#2397#!#%COMMANDER_PATH%\TCIMG.exe#!#folds="%t"||list<%UL!!4>
MENUITEM Создать выделенному объекту N-оe количество копий#!#Wcmicons.dll,2049#!#%COMMANDER_PATH%\TCIMG.exe#!#copys=

Решение этой проблемы может быть и другим, более правильным и удобным для Вас возможным решением. Я просто показал попытку самостоятельного решения. Помогите если такое возможно сделать. Спасибо.
 
asmadeusДата: Среда, 09.01.2019, 18:07 | Сообщение № 1478
Генералиссимус

На сайте с: 14.12.2012
Город: Кривой Рог
Сообщений: 1375
Награды: 29
Репутация: 32
sibirnik, вместо bufsr используете sends=-1??-1 (получение с буфера и запись в массив по строкам), потом надо править регулярку для обработки. В общем, тупо нужна с нуля написанная кнопка.
Цитата alexostrov ()
Или я не прав?

Не правы.Я объединяю массив wcmicons, панели и tcm в один, и ищу совпадение с иконками папки.
Если дойду до результата, который меня устроит, покажу. А так - меня эта кнопка уже утомила
 
sibirnikДата: Среда, 09.01.2019, 18:11 | Сообщение № 1479
Генерал-лейтенант

На сайте с: 27.08.2014
Сообщений: 742
Награды: 26
Репутация: 10
asmadeus,
Цитата asmadeus ()
вместо bufsr используете sends=-1??-1 (получение с буфера и запись в массив по строкам), потом надо править регулярку для обработки. В общем, тупо нужна с нуля написанная кнопка.

Для меня это сложновато, потому и прошу помощи.
 
asmadeusДата: Среда, 09.01.2019, 18:27 | Сообщение № 1480
Генералиссимус

На сайте с: 14.12.2012
Город: Кривой Рог
Сообщений: 1375
Награды: 29
Репутация: 32
Цитата asmadeus ()
arr2d=$GLOBALALIST+$GLOBALAENDS+GLOBALBENDS||16|0 brr2d=$GLOBALBLIST+$GLOBALAENDS+GLOBALBENDS||16|0

Я вот тоже не пойму, почему вроде два совершенно одинаковых массива в моей кнопке, а подставить в это:
Цитата asmadeus ()
zrr2d=$GLOBALANF2D||19|$GLOBALBRR2D||37|1||9|1:0||16|2|$GLOBALANF2D1||16|3|$GLOBALARR2D1 GLOBALZRR2D

вот так уже не приносит результата:
zrr2d=$GLOBALANF2D||19|$GLOBALARR2D||37|1||9|1:0||16|2|$GLOBALANF2D1||16|3|$GLOBALARR2D1 GLOBALZRR2D
 
chip642Дата: Среда, 09.01.2019, 22:00 | Сообщение № 1481
Генералиссимус

На сайте с: 24.04.2013
Город: Москва
Сообщений: 1495
Награды: 62
Репутация: 58
sibirnik

В TCIMG.ini (TCIMGU.ini) в секцию [FormatUser] добавляем:  

Код
bt8=([^\r\n]+)([\r\n]+)([^\r\n]+)([\r\n]+)([^\r\n]+)||$5¤$3¤$1


Код
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\TCIMG.exe
bufsr=&&(.*?)[~~](.*)!!$2||#!#!!@CRLF||?T|p3#4#1|d,1:-1||formt<63>||formt<54,bt8> gends=@<info=x50> xends=-1??-1 <FOR> 1 <TO> GLOBALXENDS<0> sends=GLOBALXENDS<x:INDEX:>!!-8¤ zends=TOTALCMD#BAR#DATA@CRLF%%COMMANDER_PATH%%\TCIMG.exe@CRLFGLOBALSENDS<x1>@CRLFWcmicons.dll,1@CRLFGLOBALSENDS<x3>??-1 barbt=1||-1||GLOBALGENDS<1>||butfrom<GLOBALZENDS<t>> <NEXT> barupd
WCMICONS.dll,19
Из скопированных кнопок в синтаксисе меню MENUIMG создать на панели инструментов Total Commander кнопки

0
-1


Цитата asmadeus ()
А так - меня эта кнопка уже утомила


Что-то у вас как-то всё сложно. Но задача конечно не из легких, спору нет.
 
alexostrovДата: Среда, 09.01.2019, 22:52 | Сообщение № 1482
Полковник

На сайте с: 22.11.2017
Сообщений: 179
Награды: 0
Репутация: 0
asmadeus
Может Вам это поможет:
GLOBALALIST - 292 -Menu
GLOBALAENDS - 52 - Bar
GLOBALBENDS - 338 - Tcm
GLOBALANF2D - 0
GLOBALBRR2D - 682 (похоже на Menu + Bar + Tcm)
LOBALANF2D1 - 0
GLOBALARR2D1 - 682
GLOBALZRR2D - 8
 
chip642Дата: Четверг, 10.01.2019, 00:17 | Сообщение № 1483
Генералиссимус

На сайте с: 24.04.2013
Город: Москва
Сообщений: 1495
Награды: 62
Репутация: 58
alexostrov

Протестируйте эту кнопку.

Код
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\TCIMG.exe
watch=1 tempxx slist=INI<7//$f300WCMICONS.INC//mappings//>||save<$f200Lists\AllBarsIcons.txt|2> alist=$f306Wcmd_Rus.ini||formt<0!!(?i)button=(.+\.(?:dll)(?:\,\d+)?)>||save<$f200Lists\AllBarsIcons.txt|2> blist=PS<$f300Bar\//1//0//*.bar> stext=$GLOBALBLIST||$f254//0 aends=GLOBALSTEXT<1>??-1||formt<0!!(?i)button\d+=(.+\.(?:dll)(?:\,\d+)?)>||&&[^\r\n]+\\!! asave=GLOBALAENDS||$f200Lists\AllBarsIcons.txt|2|@CRLF|1 textt=$f200Lists\AllBarsIcons.txt||?T|a7:^\d,1:-1!!Wcmicons.dll,||?B58!!.ico||formt<3,27,63> textt=GLOBALTEXTT1<1>||formt<0!!.*[\d].*>
WCMICONS.dll,1
Записать в TCIMG\Files\Lists\AllBarsIcons.txt имена всех значков задействованных в WCMICONS.INC, Wcmd_Rus.ini и во всех *.bar в  папке TC\Bar\

-1


Скажите из какой папки будем извлекать значки из *.tcm и их подключим, я тестирую на сборке Маэстро - TC_IMAGE (она подходит, как никая для теста, самая сложная), у него файлы *.tcm в папке TC_IMAGE\Files\Tcm\.
Остальное по ходу.
 
alexostrovДата: Четверг, 10.01.2019, 01:02 | Сообщение № 1484
Полковник

На сайте с: 22.11.2017
Сообщений: 179
Награды: 0
Репутация: 0
chip642
Есть 1683 значка. В Гл. меню я использую, естественно, только значки из Wcmicons.dll, а в барах использую и из Wcmicons и Wcmicons3. Так вот они все есть в списке. Более подробно надо анализировать сколько каких, из Меню, Баров Tсм.
*.tcm находятся в папке ТС\Files\Tcm
Спасибо Вам, за то что Вы подключились к этой непростой работе. Удачи.

Добавлено (10.01.2019, 01:27)
---------------------------------------------
chip642
Я тестирую тоже на сборке Маэстро TC IMAGE 22. Правда Меню обрезано на половину и свои Панели Инструментов.
Пожелание: - получить в разные папки используемые значки из Menu, Bar\*.bar, Tcm\*.tcm (например папки - Ico_Menu, Ico_Bar, Ico_Tcm )
Остальное по ходу процесса.

 
chip642Дата: Четверг, 10.01.2019, 01:36 | Сообщение № 1485
Генералиссимус

На сайте с: 24.04.2013
Город: Москва
Сообщений: 1495
Награды: 62
Репутация: 58
alexostrov

Для чего надо в отдельные папки извлекать, ведь вы в итоге хотите из всех задействоанных значков создать библиотеку, а если так, то у меня есть план , думаю у нас всё и так получится.

Подключил извлечение значков из *.tcm, тестируйте.

Код
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\TCIMG.exe
watch=2 tempxx textt=$f200Lists\AllBarsIcons.txt||##||backup<0> slist=INI<7//$f300WCMICONS.INC//mappings//>||save<$f200Lists\AllBarsIcons.txt|2> alist=$f306Wcmd_Rus.ini||formt<0!!(?i)button=(.+\.(?:dll)(?:\,\d+)?)>||save<$f200Lists\AllBarsIcons.txt|2> blist=PS<$f300Bar\//1//0//*.bar> stext=$GLOBALBLIST||$f254//0 aends=GLOBALSTEXT<1>??-1||formt<0!!(?i)button\d+=(.+\.(?:dll)(?:\,\d+)?)>||&&[^\r\n]+\\!! asave=GLOBALAENDS||$f200Lists\AllBarsIcons.txt|2|@CRLF|1 tempxx clist=PS<$f312Tcm\//1//0//*.tcm> stext=$GLOBALCLIST||$f254//0 bends=GLOBALSTEXT<1>??-1||formt<0!!#!#(.*\d+)#!#>||&&[^\r\n]+\\!!||?F27,20  asave=GLOBALBENDS||$f200Lists\AllBarsIcons.txt|2|@CRLF|1 textt=$f200Lists\AllBarsIcons.txt||?T|a7:^\d,1:-1!!Wcmicons.dll,||?B58!!.ico||formt<3,27,63> textt=GLOBALTEXTT1<1>||formt<0!!.*[\d].*>
WCMICONS.dll,2
Записать в TCIMG\Files\Lists\AllBarsIcons.txt имена всех значков задействованных в WCMICONS.INC, Wcmd_Rus.ini, во всех *.bar в  папке TC\Bar\ и во всех *.tcm в  папке ТС\Files\Tcm

-1


Перекопируйте кнопку, забыл учесть, что значки могут прописаны в виде полного пути к ним и путь к папке \Files\Tcm не универсльный прописал.
 
Форум » • Total Commander • » Кнопки для Total Commander » ЗАКАЗ КНОПОК
Поиск:

Интеллектуальные права и отказ от ответственности