ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Здесь обсуждается всё, что касается макросов.
buniak_a_h
Posts: 2080
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 129 times
Been thanked: 206 times
Contact:

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by buniak_a_h »

Макрос навеян этим:
PieApple wrote: Thu 23 Jan, 2014 12:57 Еще хотел бы поделиться идеей, реализованной в Проводнике с Windows 7, Total Commander, что если нажать мышкой на имя папки в адресной строке сверху, то происходит переход вверх на эту папку.
На самом деле получилось прикольно и, возможно, полезно (если Вы любите настольных грызунов).
Суть:
Клик мышой на заголовке панели, содержащей имя папки, вызывает переход (как в проводнике). А если клик приходится на разделитель (бэкслэш), то предоставляется выбор, в какую папку перейти.
Первоначальный макрос сваян «на коленке» за полчасика, потому не судите строго. Если будут отзывы и замечания — попробую «докрутить».

Начиная с этой версии я перестал выкладывать текст скрипта в сообщении (уж больно трудоёмко стало, т.к. он вырос). Тем более что “Select all” на сайте опять перестал работать. Теперь только во вложении в виде 7z-архива.
Сведения о версии:
Версия 1.4.8.
  1. При входе в диалоговый режим предусмотрено гашение выделения текста (неудачная попытка была предпринята в версии 1.4.6).
  2. Стилистические правки в файлах помощи и языковом
  3. Перекомпонован диалог настройки таким образом, чтоб всё помещалось
  4. В настроечном диалоге реализована краткая контекстная подсказка (аналог Hint, но не всплывающая, а выводимая в «подвале» формы.
Версия 1.4.9.
  • Исправлена ошибка, приводившая к "блокировке" скрипта в случае клика по рамке панели вне заголовка (вне «чувствительной зоны»).
    (Блокировка - неработоспособность скрипта до перезагрузки макросов командой macro:load)
Версия 1.4.10.
  • Изменён алгоритм синтаксического разбора строки заголовка для корректной обработки времени, заданного в американском формате (2:10 AM) при клике по правой панели
ClickToTitleDir-1.4.10.7z
(23.92 KiB) Downloaded 25 times

Вместе с файлом самого скрипта поставляются языковые файлы ClickToTitleDirRus.lng и ClickToTitleDirEng.lng и файл помощи ClickToTitleDirRus.hlf.
Last edited by buniak_a_h on Mon 04 May, 2020 12:18, edited 65 times in total.
buniak_a_h
Posts: 2080
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 129 times
Been thanked: 206 times
Contact:

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by buniak_a_h »

Latest post of the previous page:

zg wrote: Fri 25 Oct, 2019 15:08 добавит пустой макрос с максимальным приоритетом?
zg wrote: Fri 25 Oct, 2019 20:05 добавьте в обработчик вызов того, что вам нужно.
Методом научного тыка я нашёл, как это сделать. НО! Не могли бы Вы подсказать, где искать описание CallBack-функции? У меня получилось, что при наличии CallBack-функции код, записанный в SequenceText, игнорируется (точнее, проверяется синтаксис. Пустую строку не принимает…). В CallBack-функцию передаются какие-то 2 параметра - не нашёл я описания. Короче, кроме описания синтаксиса вызова я ничего не нашёл. Где почитать?
User avatar
zg
zero-gravity
Posts: 5878
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 155 times
Contact:

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by zg »

User avatar
HaRT
Moderator
Posts: 9553
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 109 times
Been thanked: 230 times

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by HaRT »

buniak_a_h wrote: Sat 26 Oct, 2019 05:01Опубликована версия 1.3.5
Спасибо.
buniak_a_h wrote: Sun 29 Sep, 2019 07:51 Исправлена ошибка, из-за которой клик на букве диска и двоеточии с Alt-ом вызывал переход в корень вместо вызова списка вложенных папок.
А кручение колёсика над ними же (п.2)?
Last edited by HaRT on Sat 26 Oct, 2019 14:56, edited 1 time in total.
Фар есть инструмент, а не нянька. © 2009 DrKnS
buniak_a_h
Posts: 2080
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 129 times
Been thanked: 206 times
Contact:

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by buniak_a_h »

HaRT wrote: Sat 26 Oct, 2019 14:53 А кручение колёсика над ними же (п.2)?
Вы проверили, или по описанию? У меня, вроде, работает…
User avatar
HaRT
Moderator
Posts: 9553
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 109 times
Been thanked: 230 times

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by HaRT »

buniak_a_h wrote: Sat 26 Oct, 2019 16:26
HaRT wrote: Sat 26 Oct, 2019 14:53 А кручение колёсика над ними же (п.2)?
Вы проверили, или по описанию? У меня, вроде, работает…
По описанию. Проверить смогу на буднях. Если исправлено, то хорошо бы упомянуть в истории.
Фар есть инструмент, а не нянька. © 2009 DrKnS
buniak_a_h
Posts: 2080
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 129 times
Been thanked: 206 times
Contact:

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by buniak_a_h »

HaRT wrote: Sat 26 Oct, 2019 17:53 хорошо бы упомянуть в истории
Вроде, исправлено. Допишу, в следующую версию войдёт. Перезаливать из-за этого неохота.
Забыл упомянуть потому что это была одна и та же ошибка, что клик с Alt-ом, а список сделанного я по результатам сравнения составлял.
buniak_a_h
Posts: 2080
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 129 times
Been thanked: 206 times
Contact:

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by buniak_a_h »

Опубликована версия 1.3.6 (эстетические правки). Если у Вас будет работать также, как у меня, выглядит переход в диалоговый режим довольно прикольно. :-)
Кроме того, здесь в сообщении представлю версию 1.4.0. Основное - изменена технология чтения с экрана (отказался от «варварского» граббера в пользу API консоли). В связи с этим ограничена область "чувствительности" экрана по горизонтали.
User avatar
HaRT
Moderator
Posts: 9553
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 109 times
Been thanked: 230 times

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by HaRT »

buniak_a_h wrote: Sun 27 Oct, 2019 20:39 версия 1.3.6
Спасибо, про начальное положение каретки я и сам хотел предложить. Только вот зачем весь текст теперь помечен как неизменённый? Смущает пониженная контрастность такого текста.
И, к сожалению, ошибка 3.3 не исправлена.

И вопрос: зачем в коде 'far.Show("qqq"); return'? Разве нельзя пустую ф-ю? Ну а если сообщение всё же зачем-то нужно, то почему бы не сделать его осмысленным?

Кроме того, у меня есть редакторские правки в файл Справки (и, соответственно в добавленную секцию whatsnew «шапки» скрипта).
Last edited by HaRT on Mon 28 Oct, 2019 18:20, edited 1 time in total.
Фар есть инструмент, а не нянька. © 2009 DrKnS
buniak_a_h
Posts: 2080
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 129 times
Been thanked: 206 times
Contact:

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by buniak_a_h »

HaRT wrote: Mon 28 Oct, 2019 18:18 к сожалению, ошибка 3.3 не исправлена.
Исправлена, у Вас ещё нету. После Ответа от zg
HaRT wrote: Mon 28 Oct, 2019 18:18 зачем в коде 'far.Show("qqq"); return'?
Остатки тестирования. По-моему, камешек в огород составителей хелпа: просто тупо не хватает ссылки из статьи про far.MacroAdd (Manual of LuaFAR 3) на MacroAddMacro в Encyclopedia. Пришлось эксперименты ставить. Ну и забыл убрать. Надо одну return оставить… Хотя ни на что не влияет.
User avatar
HaRT
Moderator
Posts: 9553
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 109 times
Been thanked: 230 times

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by HaRT »

buniak_a_h wrote: Mon 28 Oct, 2019 19:29 Исправлена, у Вас ещё нету. После Ответа от zg
Спасибо, ждём-с…
buniak_a_h wrote: Mon 28 Oct, 2019 19:29 Надо одну return оставить… Хотя ни на что не влияет.
Так а пустая строка чем плоха? Зачем return? Или этот код — это не всё тело функции, а лишь фрагмент?
Фар есть инструмент, а не нянька. © 2009 DrKnS
Shmuel
Posts: 6167
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 31 times
Been thanked: 330 times

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by Shmuel »

buniak_a_h wrote: Mon 28 Oct, 2019 19:29 По-моему, камешек в огород составителей хелпа: просто тупо не хватает ссылки из статьи про far.MacroAdd (Manual of LuaFAR 3) на MacroAddMacro в Encyclopedia.
Если разуть глаза, то эта ссылка в данной статье присутствует.
buniak_a_h
Posts: 2080
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 129 times
Been thanked: 206 times
Contact:

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by buniak_a_h »

HaRT wrote: Mon 28 Oct, 2019 18:18 Только вот зачем весь текст теперь помечен как неизменённый?
Я сам не знаю, почему так получилось. По DM_SETCURSORPOS текст считается нормальным (как будто нажали End); по DM_SETEDITPOSITION - почему-то нет. В описании я ничего про это не нашёл.
Я заметил, что раскраска изменилась, но не понял. Думал, у меня в глазах темнеет. После травм у меня такое бывает...
buniak_a_h
Posts: 2080
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 129 times
Been thanked: 206 times
Contact:

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by buniak_a_h »

HaRT wrote: Mon 28 Oct, 2019 19:33 Так а пустая строка чем плоха?
Я не знаю, чем объяснить... Иногда с пустой строкой far.MacroAdd возвращал false и, соответственно, макрос не добавлялся. return мне показался хорошим выходом.
buniak_a_h
Posts: 2080
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 129 times
Been thanked: 206 times
Contact:

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by buniak_a_h »

Shmuel wrote: Mon 28 Oct, 2019 19:40 Если разуть глаза, то эта ссылка в данной статье присутствует.
Я не нашёл (даже сейчас!)
Вот все строки, в которых есть ссылки:
Area: flags (defaults to MACROAREA_COMMON) (ссылка на MacroControl - список областей)
AKey: table tInputRecord, or string (e.g. "CtrlShiftF12") (ссылка на описание структуры tInputRecord)
used in Callback and far.MacroDelete (ссылка на far.MacroDelete)
MacroControl(MCTL_ADDMACRO) (две ссылки; обе на страницу MacroControl)
'msgbox("test","test")', (ссылка на msgbox)
Это - ВСЁ! Где?
User avatar
HaRT
Moderator
Posts: 9553
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 109 times
Been thanked: 230 times

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by HaRT »

buniak_a_h wrote: Mon 28 Oct, 2019 19:47 По DM_SETCURSORPOS текст считается нормальным (как будто нажали End); по DM_SETEDITPOSITION - почему-то нет.
можно исправить. Можно ли ещё короче, не знаю.
Фар есть инструмент, а не нянька. © 2009 DrKnS
buniak_a_h
Posts: 2080
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 129 times
Been thanked: 206 times
Contact:

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by buniak_a_h »

Я добавил в F.DN_CTLCOLORDLGITEM . Чтоб цвет один был... Да, так, как Вы написали - намного короче. Спасибо.
Post Reply

Return to “Обсуждение макросов”